【问题标题】:auth()->user()->id is not working when I use it in controller using routes to api.phpauth()->user()->id 在控制器中使用路由到 api.php 时不起作用
【发布时间】:2018-11-17 02:44:13
【问题描述】:
public function store(Request $request)
    {
        $booking = ($request->isMethod('put')) ? Booking::findOrFail($request->booking_id) : new Booking;
        $booking->checkIn = $request->checkIn;
        $booking->checkOut = $request->checkOut;
        $booking->room_id = $request->room_id;
        $booking->user_id = auth()->user()->id;//not working

        if($booking->save()){
            return new BookingResource($booking);
        }
    }

Route::put('/booking','BookingsController@store');//api.php

这里 auth()->user()->id 不起作用,但如果我使用相同的代码但在 routes/web.php 中使用路由代码,它的工作发现

【问题讨论】:

标签: php laravel laravel-5 laravel-4 laravel-5.1


【解决方案1】:

在 auth 中传递保护参数 ..

1. auth('api')->user();  //if u are using api guard ...(web guard)
2. $request->user('api');     //by reqeust class
3. Auth::guard('api')->user()   //using Auth facade

【讨论】:

    【解决方案2】:

    在你的路由中使用 auth:api 中间件。

    Route::middleware(['auth:api'])->put('/booking','BookingsController@store');
    

    【讨论】:

      【解决方案3】:

      在你的控制器中使用这种方式:

      use Illuminate\Support\Facades\Auth
      
      $booking->user_id = Auth::user()->id;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-14
        • 2015-10-17
        • 1970-01-01
        • 1970-01-01
        • 2019-04-13
        • 2016-05-08
        • 2021-11-28
        • 1970-01-01
        相关资源
        最近更新 更多