Laravel错误:尝试获取非对象的属性(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php)

Laravel错误:尝试获取非对象的属性(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php),php,laravel,Php,Laravel,我正在使用Laravel,我得到了以下错误: 正在尝试获取非对象的属性(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php) 问题出在这一行: <li><i class="fa fa-user"></i><a href="#"> {{$post->author->name}} </a></li> 这些是模型: 发布模型: <?p

我正在使用Laravel,我得到了以下错误:

正在尝试获取非对象的属性(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php)

问题出在这一行:

 <li><i class="fa fa-user"></i><a href="#"> {{$post->author->name}} </a></li>
  • 这些是模型:

    发布模型:

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class post extends Model
    {
    
        public function author()
        {
            return $this->belongsTo(User::class);
        }
    }
    
    <?php
    
    namespace App;
    
    use Illuminate\Notifications\Notifiable;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    
    class User extends Authenticatable
    {
        use Notifiable;
    
        /**
         * The attributes that are mass assignable.
         *
         * @var array
         */
        protected $fillable = [
            'name', 'email', 'password',
        ];
    
        /**
         * The attributes that should be hidden for arrays.
         *
         * @var array
         */
        protected $hidden = [
            'password', 'remember_token',
        ];
    
        public function posts()
        {
         return $this->hasMany(post::class);   
        }
    }
    

    在您的帖子模型中,您应该添加以下功能:

    public function author(){
      return $this->hasOne('App\User');
    }
    
    在视图中,您应该这样说:

    {{$post->author()->name}}
    

    那篇文章有作者吗?这篇文章没有作者。或者您的关系不起作用。未定义的属性:Illumb\Database\Eloquent\Relations\BelongsTo::$name(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php)这在多个方面是错误的。这种关系真的没有意义。您建议的方式应该是在用户模型上使用
    post\u id
    。将模型关系作为如下函数调用:
    $model->relationship()
    返回查询对象,而不是模型。这就是穆罕默德犯的错误。哈松和贝朗斯托·巴夫杜拉戈伊也是一样。我不明白你的回答,德夫克,你能解释一下吗