Laravel:在刀片视图中打印URL或默认值

时间:2016-07-30 00:52:43

标签: php laravel laravel-5.2

我有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' }}

2 个答案:

答案 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' }}