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