微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。