Laravel错误:尝试获取非对象的属性(视图:C:\laragon\www\al Zad\resources\views\blog\index.blade.php)
我正在使用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
<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()
返回查询对象,而不是模型。这就是穆罕默德犯的错误。哈松和贝朗斯托·巴夫杜拉戈伊也是一样。我不明白你的回答,德夫克,你能解释一下吗