【问题标题】:"Trying to get property 'id' of non-object" Laravel - Auth::id() command“试图获取非对象的属性 'id'” Laravel - Auth::id() 命令
【发布时间】:2019-10-02 21:40:46
【问题描述】:

这是我在 DatatablesController.php 中的代码示例

$id = Auth::user()->id;
   $data = Cdr::
      select('src','dst','start','duration','billsec','disposition','uniqueid')
      ->where('billsec','>', '0')
      ->where('start','>=',Carbon::today())
      ->join('alt_portal.numbers', 'nr','=','dst') 
      ->where('alt_portal.numbers.user_id','=',$id)
      ->get(); 

我正在做一个有很多用户的 Laravel 项目。每个用户都有自己的号码。基本上,我试图从数据库中只选择那些属于特定用户的号码,换句话说,登录用户的 ID,因为用户只能在表中看到他/她的呼出和呼入电话。

当我尝试这样做时:

$id = Auth::user()->id;
...
->where('alt_portal.numbers.user_id','=',$id)

我在浏览器中收到一条消息,对应一个错误:

消息:“尝试获取非对象的属性 'id'”

有人知道如何解决这个问题吗?

附:我是 Laravel 的新手。

【问题讨论】:

  • 确保您在访问Auth::user()->id时已登录
  • 是的,我已登录。我尝试在blade.php 文件中打印我的ID,它成功了,我的ID 显示在页面中。
  • 在此处粘贴您的路线 您如何称呼您的路线?
  • Route::get('/api/datatables', 'DatatablesController@Data')->name('api.datatables.index');
  • 你使用过 Auth 门面 use Auth; 吗?试试dd(Auth::user()->id()); 看看你有没有得到你的身份证。

标签: php laravel


【解决方案1】:

案件已结案。谢谢你们的回复!我设法解决了我的问题。

我在这里找到了解决方案:ANSWER 但是我直接将堆栈添加到中间件,而不是在“网络”组中。

这是我的 /Http/kernel.php 文件:

protected $middleware = [
        \Illuminate\Session\Middleware\StartSession::class,
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class
    ];

【讨论】:

  • 我建议保留中间件组原样,否则您将通过将其放入全局堆栈中为每个请求加载 auth 中间件。将您的路由移动到 routes/web.php ,您将自动加载该中间件。
猜你喜欢
  • 2021-05-26
  • 2019-06-30
  • 1970-01-01
  • 2020-06-26
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 2019-03-27
相关资源
最近更新 更多