从一到多的数据检索。 Laravel
Data Retrieval from one to many. Laravel
我正在尝试从一对多检索数据 table。但不是 working.There 是两个模型:车辆和图像。一个车辆可以有多个图像,但一个图像只能有一个车辆。它显示未定义 variable:image 我的模型是:
//Image:
class Image extends Model
{
protected $fillable = ['title','filepath'];
public function vehicles(){
return $this->belongsTo('App\vehicles');
}
}
//Vehicle:
class vehicles extends Model
{
protected $fillable = ['vname','lotno','engine','mileage','kilometers','features','price','negotiable','vcondition','used','manufacture_year','description','Company_cid','Sellers_sid','Vehicle_Type_id'];
public function Image(){
return $this->hasMany('App\Image');
}
}
//Controller:
public function index()
{
$vehicle_type=vehicle_types::where('type','Bike')->get()->first();
$id=$vehicle_type->id;
$vehicles=vehicles::where('Vehicle_Type_id',$id)->get();
return view('Bike.index',compact('vehicles'));
}
查看:
@foreach($vehicles as $vehicles)
<div class="col-sm-4">
<!-- Product -->
<div class="shop-item">
<!-- Product Image -->
<div class="image">
<a href="page-product-details.html"><img src="{{ asset("images/$vehicles->$image->title") }}" alt="{{ $vehicles->$image->title }}" ></a>
</div>
<!-- Product Title -->
<div class="title">
<h2><a href="page-product-details.html">{{$vehicles->vname}}</a></h2>
<h3><a href="page-product-details.html">{{$vehicles->lotno}}</a></h3>
</div>
@endforeach
我不知道我做错了什么。谁能帮帮我?
首先你的for循环是错误的,会是
@foreach($vehicles as $vehicle)
然后,访问像
这样的图像
$vehicle->Image
它将return收集对象,因为一辆车有多个图像。
然后在$vehicle->Image的循环中,可以访问Image属性。
使模型名称成为单数:Vehicle、Image
车辆有许多图像
public function images(){
return $this->hasMany('App\Image');
}
图片属于车辆:
public function vehicle(){
return $this->belongsTo('App\vehicle');
}
并且在控制器的index()
方法中:
$vehicles=Vehicle::where('Vehicle_Type_id',$id)->get();
会给你一个collection.
并且,在视图中:
@foreach($vehicles as $vehicle)
@foreach($vehicle->images as $image)
<a href="page-product-details.html"><img src="{{ asset("images/$image->title") }}" alt="{{ $image->title }}" ></a>
@endforeach
<h2><a href="page-product-details.html">{{$vehicle->vname}}</a></h2>
<h3><a href="page-product-details.html">{{$vehicle->lotno}}</a></h3>
@endforeach
我正在尝试从一对多检索数据 table。但不是 working.There 是两个模型:车辆和图像。一个车辆可以有多个图像,但一个图像只能有一个车辆。它显示未定义 variable:image 我的模型是:
//Image:
class Image extends Model
{
protected $fillable = ['title','filepath'];
public function vehicles(){
return $this->belongsTo('App\vehicles');
}
}
//Vehicle:
class vehicles extends Model
{
protected $fillable = ['vname','lotno','engine','mileage','kilometers','features','price','negotiable','vcondition','used','manufacture_year','description','Company_cid','Sellers_sid','Vehicle_Type_id'];
public function Image(){
return $this->hasMany('App\Image');
}
}
//Controller:
public function index()
{
$vehicle_type=vehicle_types::where('type','Bike')->get()->first();
$id=$vehicle_type->id;
$vehicles=vehicles::where('Vehicle_Type_id',$id)->get();
return view('Bike.index',compact('vehicles'));
}
查看:
@foreach($vehicles as $vehicles)
<div class="col-sm-4">
<!-- Product -->
<div class="shop-item">
<!-- Product Image -->
<div class="image">
<a href="page-product-details.html"><img src="{{ asset("images/$vehicles->$image->title") }}" alt="{{ $vehicles->$image->title }}" ></a>
</div>
<!-- Product Title -->
<div class="title">
<h2><a href="page-product-details.html">{{$vehicles->vname}}</a></h2>
<h3><a href="page-product-details.html">{{$vehicles->lotno}}</a></h3>
</div>
@endforeach
我不知道我做错了什么。谁能帮帮我?
首先你的for循环是错误的,会是
@foreach($vehicles as $vehicle)
然后,访问像
这样的图像$vehicle->Image
它将return收集对象,因为一辆车有多个图像。 然后在$vehicle->Image的循环中,可以访问Image属性。
使模型名称成为单数:Vehicle、Image
车辆有许多图像
public function images(){
return $this->hasMany('App\Image');
}
图片属于车辆:
public function vehicle(){
return $this->belongsTo('App\vehicle');
}
并且在控制器的index()
方法中:
$vehicles=Vehicle::where('Vehicle_Type_id',$id)->get();
会给你一个collection.
并且,在视图中:
@foreach($vehicles as $vehicle)
@foreach($vehicle->images as $image)
<a href="page-product-details.html"><img src="{{ asset("images/$image->title") }}" alt="{{ $image->title }}" ></a>
@endforeach
<h2><a href="page-product-details.html">{{$vehicle->vname}}</a></h2>
<h3><a href="page-product-details.html">{{$vehicle->lotno}}</a></h3>
@endforeach