在 eloquent 查询中获取来自 'with' 的项目并显示给 blade
get items from 'with' in eloquent query and display to blade
所以我有这个 eloquent 查询
$categories = categories::all();
foreach($categories as $c):
$c->items = item_categories::where('cat_id',$c->cat_id)->with('item')->with('item.item_images')->get();
endforeach;
而在我的blade中,我可以显示这部分
with('item')
喜欢
@foreach($categories as $c)
@foreach($c->items as $i)
{{ $i->item->item_name }}
@endforeach
@endforeach
如何从这部分检索数据?
with('item.item_images')
我试过了
@foreach($categories as $c)
@foreach($c->items as $i)
{{ $i->item->item->item_images->image_name }}
@endforeach
@endforeach
但它给我错误
Trying to get property of non-object
有什么想法,请帮忙?
这是 'categories' 模型
class categories extends Model
{
protected $table = 'categories';
protected $primaryKey = 'cat_id';
public function item_category(){
return $this->belongsTo('App\item_categories','cat_id','cat_id');
}
}
和'item_categories'模型
class item_categories extends Model{
protected $table = "item_categories";
public function item(){
return $this->belongsTo('App\items','item_id','item_id');
}
public function category(){
return $this->hasOne('App\categories','cat_id','cat_id');
}
}
和'items'模型
class items extends Model
{
protected $table = 'items';
protected $primaryKey = 'item_id';
public function item_images(){
return $this->hasMany('App\item_images','item_id','item_id');
}
public function item_categories(){
return $this->hasMany('App\item_categories','item_id','item_id');
}
}
你说得太深了。看起来 item_categories 有一个项目,它有一个 item_image,所以你只需要像这样访问它:
{{ $i->item->item_images->image_name }}
由于每个项目有很多item_image,您需要遍历它。
@foreach($i->item->item_images as $image)
{{$image->image_name}}
@endforeach
我的猜测是您的代码没问题,但项目没有 item_image。在尝试使用值
之前,尝试检查 $i->item->item->item_images 是否为空
所以我有这个 eloquent 查询
$categories = categories::all();
foreach($categories as $c):
$c->items = item_categories::where('cat_id',$c->cat_id)->with('item')->with('item.item_images')->get();
endforeach;
而在我的blade中,我可以显示这部分
with('item')
喜欢
@foreach($categories as $c)
@foreach($c->items as $i)
{{ $i->item->item_name }}
@endforeach
@endforeach
如何从这部分检索数据?
with('item.item_images')
我试过了
@foreach($categories as $c)
@foreach($c->items as $i)
{{ $i->item->item->item_images->image_name }}
@endforeach
@endforeach
但它给我错误
Trying to get property of non-object
有什么想法,请帮忙?
这是 'categories' 模型
class categories extends Model
{
protected $table = 'categories';
protected $primaryKey = 'cat_id';
public function item_category(){
return $this->belongsTo('App\item_categories','cat_id','cat_id');
}
}
和'item_categories'模型
class item_categories extends Model{
protected $table = "item_categories";
public function item(){
return $this->belongsTo('App\items','item_id','item_id');
}
public function category(){
return $this->hasOne('App\categories','cat_id','cat_id');
}
}
和'items'模型
class items extends Model
{
protected $table = 'items';
protected $primaryKey = 'item_id';
public function item_images(){
return $this->hasMany('App\item_images','item_id','item_id');
}
public function item_categories(){
return $this->hasMany('App\item_categories','item_id','item_id');
}
}
你说得太深了。看起来 item_categories 有一个项目,它有一个 item_image,所以你只需要像这样访问它:
{{ $i->item->item_images->image_name }}
由于每个项目有很多item_image,您需要遍历它。
@foreach($i->item->item_images as $image)
{{$image->image_name}}
@endforeach
我的猜测是您的代码没问题,但项目没有 item_image。在尝试使用值
之前,尝试检查 $i->item->item->item_images 是否为空