Laravel Blade - @if( false ) 导致 "Trying to get property of non-object" 错误
Laravel Blade - @if( false ) results in "Trying to get property of non-object" error
我的 blade 模板有一个 @if
检查,当结果为假时,会导致错误 "Trying to get property of non-object"
.
在@if
中,我只是调用一个方法来查看是否有任何结果,其中returns一个布尔值:
@if( Book::isUserCoauthor($book, Auth::user()->id) )
@else
但是如果它 returns false
,我得到错误。 @if
不应该能够处理 false
条件吗?
如果我这样做会发生同样的错误:
@if ( false )
我用Laravel 4.2.
我认为你遇到的问题是因为你试图获取用户的 ID,即使他没有经过身份验证。
因此您可以通过首先检查用户是否经过身份验证来改进检查,除非整个视图受到 auth
中间件的保护。
@if( Auth::check() && Book::isUserCoauthor($book, Auth::user()->id) )
如果仅当 if()
子句中的条件转换为 false
时出现错误,您很可能正在访问 else
块中的 属性你不应该。
@if( !Book::isUserCoauthor($book, Auth::user()->id) )
// this seems fine
@else
// here you are doing something bad
@endif
我的 blade 模板有一个 @if
检查,当结果为假时,会导致错误 "Trying to get property of non-object"
.
在@if
中,我只是调用一个方法来查看是否有任何结果,其中returns一个布尔值:
@if( Book::isUserCoauthor($book, Auth::user()->id) )
@else
但是如果它 returns false
,我得到错误。 @if
不应该能够处理 false
条件吗?
如果我这样做会发生同样的错误:
@if ( false )
我用Laravel 4.2.
我认为你遇到的问题是因为你试图获取用户的 ID,即使他没有经过身份验证。
因此您可以通过首先检查用户是否经过身份验证来改进检查,除非整个视图受到 auth
中间件的保护。
@if( Auth::check() && Book::isUserCoauthor($book, Auth::user()->id) )
如果仅当 if()
子句中的条件转换为 false
时出现错误,您很可能正在访问 else
块中的 属性你不应该。
@if( !Book::isUserCoauthor($book, Auth::user()->id) )
// this seems fine
@else
// here you are doing something bad
@endif