php-为什么在User :: first()上调用方法有效,但是User :: where(…)却不可行?

在php artisan tinker中工作并返回true:

>>> User::first()->is('admin');
=> true

返回错误:

>>> User::where('id', 1)->is('admin');
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder\::is()'

为什么这样?

解决方法:

因为当使用-> where()时,您正在构建集合,但是-> first()会返回模型.

为了雄辩地返回模型,您需要通过添加-> get()来要求它执行查询.

但是,这也会返回一个集合.您可以使用-> first()解决此问题

User::where('id', 1)->first()->is('admin');

编辑评论:

尝试执行此操作,但是上面的代码应该可以工作.

$user = User::where('id', 1)->first();
$isAdmin = $user->is('admin');
上一篇:laravel:php工匠不工作


下一篇:laravel-admin安装步骤