Laravel 试图获得财产';名称';非对象的定义?

Laravel 试图获得财产';名称';非对象的定义?,laravel,Laravel,嗨,伙计们,我是拉威尔的新手,我正在尝试检索每个编队的类别名称,我发现了这个错误 正在尝试获取非对象(0)的属性“名称” 我试图检索的“名称”是我的编队所属类别的名称 这是我的分类模型 这是我的编队模型 这是我的查看页面,我试图在其中检索类别名称 有没有关于我可能错在哪里的建议?提前谢谢你 尝试更改关系 class Formation extends Model { function category() { return $this->belongsTo('App\C

嗨,伙计们,我是拉威尔的新手,我正在尝试检索每个编队的类别名称,我发现了这个错误

正在尝试获取非对象(0)的属性“名称”

我试图检索的“名称”是我的编队所属类别的名称

这是我的分类模型

这是我的编队模型

这是我的查看页面,我试图在其中检索类别名称


有没有关于我可能错在哪里的建议?提前谢谢你

尝试更改关系

class Formation extends Model
{
function category()
   {
       return $this->belongsTo('App\Category',"id","category_id"); //if your categories id is id
   }
protected $fillable =['name','price','durations','category_id'];
}
在你看来

  @foreach($formations as $formation)

    <td>{{$formation->name}}</td>
    <td>{{$formation->price}}</td>
    <td>{{$formation->category->name}}</td>
    <td>{{$formation->durations}}</td>

  @endforeach
@foreach($formations as $formation)
 <td>{{$formation->name}}</td>
 <td>{{$formation->price}}</td>
 <td> {{ $formation->categories()->pluck('name')->implode(' ') }}</td>
 <td>{{$formation->durations}}</td>
@endforeach
@foreach($formations作为$formation)
{{$formation->name}
{{$formation->price}
{{$formation->category->name}
{{$formation->durations}
@endforeach
在您的视图中

  @foreach($formations as $formation)

    <td>{{$formation->name}}</td>
    <td>{{$formation->price}}</td>
    <td>{{$formation->category->name}}</td>
    <td>{{$formation->durations}}</td>

  @endforeach
@foreach($formations as $formation)
 <td>{{$formation->name}}</td>
 <td>{{$formation->price}}</td>
 <td> {{ $formation->categories()->pluck('name')->implode(' ') }}</td>
 <td>{{$formation->durations}}</td>
@endforeach
@foreach($formations作为$formation)
{{$formation->name}
{{$formation->price}
{{$formation->categories()->pull('name')->内爆('')}
{{$formation->durations}
@endforeach

当您从数据库中删除一行或多行,但试图使用
id访问该行时,通常会出现此错误。确保您在
category
表中拥有
id
的所有类别,该id在
formation
category\u id
字段中提到。

问题是我从数据库中的类别表中删除了一行,这就是名称无法识别的原因

您可以将外键和本地键添加到关系中,然后尝试…如
$this->belongsTo('App\Category','Category\u id','Category\u id')
为了确保模型中的关系函数是否正确,您可以在控制器中测试它们,就像在控制器中这样:
dd($formations[0]->category),如果这显示了类别中的集合,那么这是确定的,否则您的关系方法不是ok@Rezash那不是我的工作me@MohamedMidou所以你们的关系方法是不正确的,读这篇文章,这正是问题所在,我已经从数据库中删除了一行,但我忘记了,傻我,谢谢
  @foreach($formations as $formation)

    <td>{{$formation->name}}</td>
    <td>{{$formation->price}}</td>
    <td>{{$formation->category->name}}</td>
    <td>{{$formation->durations}}</td>

  @endforeach
@foreach($formations as $formation)
 <td>{{$formation->name}}</td>
 <td>{{$formation->price}}</td>
 <td> {{ $formation->categories()->pluck('name')->implode(' ') }}</td>
 <td>{{$formation->durations}}</td>
@endforeach