我有Post模型,它具有用户功能返回用户模型 - 帖子的创建者。
class Post extends Model
{
/**
* Get the user that owns the post.
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
在刀片视图中,我实现了如何打印作者姓名
{{ $post->user->name or 'Anonymous' }}
以上代码有效,但它非常敏感? 例如,我尝试将此代码更改为:
{{ $post->user->name, 'Anonymous' }}
<?php $post->user->name or 'Anonymous' ?>
结果? 尝试使用此代码在线获取非对象属性错误。 也许我正在跳过简单而重要的东西。如何在刀片视图中打印URL或默认值。伪代码我的意思是:
{{ '<a href="url('/profile/' .$post->user->name)"></a>' or 'Anonymous' }}
答案 0 :(得分:2)
尝试
{{ isset($post->user->name) ? '<a href="url('/profile/' . $post->user->name)"></a>' : 'Anonymous' }}
如果这不起作用(我还没检查过),请尝试以下方法:
@if (isset($post->user->name))
<a href="url('/profile/' . $post->user->name)"></a>
@else
Anonymous
@endif
答案 1 :(得分:1)
实际上错误不是因为代码是敏感的,而是因为您实际上是在尝试访问非对象值。
实现您的目标:
{{ isset($post->user)?'<a href="url('/profile/' .$post->user->name)"></a>' : 'Anonymous' }}