【发布时间】: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());看看你有没有得到你的身份证。