【问题标题】:i'm getting a null user id when i create a new artisan in a laravel and vue project当我在 laravel 和 vue 项目中创建新工匠时,我得到一个空用户 ID
【发布时间】:2018-03-26 16:11:34
【问题描述】:

这是我拥有存储功能的控制器

公共功能存储(请求 $request) { $artisan = Artisan::create($request->all() + ['user_id' => Auth::user()]); 返回$工匠; }

可以弄清楚为什么 Auth::user() 将空值推送到数据库而不是选择当前经过身份验证的用户 ID。

请帮助大家。

【问题讨论】:

    标签: laravel vue.js


    【解决方案1】:

    Auth::user() 返回User 类的实例(如果用户已登录)。

    你必须从中选择id,像这样:

    $user_id = Auth::user()->id;
    

    【讨论】:

    • 感谢@Phiter 但是当我这样做时 $user_id = Auth::user() ->id;我收到此错误消息 -> 消息:“尝试获取非对象的属性”
    • 表示你没有正确配置auth或者没有登录用户,
    【解决方案2】:

    要从 Auth::user() 获取用户数据,你必须遵循这个。

    • 您必须使用 Auth 类登录。

      if (Auth::attempt(['email' => $email, 'password' => $password])) {}
      
    • 您必须在 web 中间件下包含要访问经过身份验证的用户数据的所有路由。

      Route::group(['middleware' => ['web']], function () {
        Route::post('/dashboard', 'Controller@dashboard');
      }
      

    由于值来自 Session 并且 web 中间件有 Session 已激活。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      相关资源
      最近更新 更多