Laravel Blade-@if(false)导致“尝试获取非对象的属性”错误

时间:2018-12-04 17:03:18

标签: laravel laravel-4 laravel-blade

我的刀片服务器模板具有@if检查,如果结果为false,则会导致错误“试图获取非对象的属性”。 在@if中,我只是调用一个方法来查看是否有任何结果,该方法返回一个布尔值: @if(Book :: isUserCoauthor($ book,Auth :: user()-> id)) @其他 但是,如果返回false,我会收到错误消息。 @if是否能够处理错误条件? 如果执行相同的错误: @if(false) 我使用Laravel 4.2。

2 个答案:

答案 0 :(得分:2)

我认为您遇到的问题是因为即使用户未经身份验证,您也试图获取该用户的ID。

因此,除非整个视图都受到auth中间件的保护,否则您可以通过首先检查用户是否通过身份验证来改进检查。

@if( Auth::check() && Book::isUserCoauthor($book, Auth::user()->id) )

答案 1 :(得分:0)

如果[ZIPPED WITH CONDITION]子句中的条件转换为n时仅出现错误,则很可能是在if()块中访问了不应访问的属性。< / p>

false