我创建了一个雄辩的模型:
class VehicleDetails extends Model
{
//
protected $table = 'v_vehicle_details';
protected $primaryKey = 'model_id';
public function tariffs()
{
return $this->hasMany('App\Tariffs', 'vehicle_model_id', 'model_id');
}
}
相同的表结构是v_vehicle_details是
关税表结构为
正在像这样的控制器中调用模型:
public function booking_view(){
$vehicle_details = new VehicleDetails();
return $vehicle_details->find(5)->tariffs();
}
我需要获取所有关税的车辆详细信息,但是当我尝试抛出错误时, Illuminate \ Database \ Eloquent \ Relations \ HasMany无法转换为字符串。有人可以帮忙吗,我是laravel的新手。
这些不是实际的表,而是视图。
答案 0 :(得分:2)
更改为
return VehicleDetails::with('tariffs')->find(5);
答案 1 :(得分:0)
这是因为在这种情况下,调用方法function addNewTable() {
var data=SpreadsheetApp.openById("SpreadsheetId").getSheetByName('SheetName').getDataRange().getValues();
var doc=DocumentApp.getActiveDocument();//run from active document
doc.getBody().appendTable(data);
}
将返回一个关系对象->tarrifs()
,这意味着您仍然必须对此对象执行查询才能获得结果。
如果您将其用作属性HasMany
而不使用->tarifs
,它将执行查询。
这和()
只是一个快捷方式一样。
答案 2 :(得分:0)
将功能更改为:
public function bookingView(){
$vehicle = VehicleDetails::with('tariffs')->find(5);
return view('your.view', compact('vehicle'));
}
with()
将eager load关税关系。
您可以按以下方式访问关税:
{{$vehicle->tariffs->anyAttributeYouWantToAccess}}