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的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载