我试图从控制器传入的数据集合中访问关系表。我能够在我的视图中迭代集合,但我无法访问关系数据。Laravel 5.3从视图中访问elequant中的一个
有2个表:
- 股(默认模式)
- stock_datas(具有外键STOCK_ID这已经设置)
控制器:
public function getstock() {
return view('vehicles.getstock', ['stock' => \App\Stock::all()]);
}
模式L(应用程序\股票),然后(应用程序\ StockData)
// From stock model:
public function stockdata() {
return $this->hasOne('App\StockData');
}
// Stock Data model:
public function stock() {
return $this->belongsTo('App\Stock');
}
视图(环路):
@foreach ($stock as $k => $v)
{{ print_r($v->stockdata()->get())->year }}
@endforeach
当我尝试下面的查询,我得到一个
Undefined property: Illuminate\Database\Eloquent\Collection::$year (View: F:\websites\tempsite\resources\views\vehicles\getstock.blade.php)
但是,year是stock_datas表中的一列。
我也可以从\ App \ StockData()表中打印数据,因此对表格的引用是正确的,因为从控制器执行print_r(\ App \ StockData :: all())会返回所有行如预期。
我在做什么错?
谢谢:)我试过你的选择,但在两者上都得到以下错误:尝试获取非对象的属性时{{print_r($ v-> stockdata->年)}}或{{print_r($ v-> stockdata() - > first() - > year)}} – mauzilla
@mauzilla刚刚注意到,您在'$ this-> hasOne('App \ StockDatas ','id','stock_id');'应该是'$ this-> hasOne('App \ StockDatas','stock_id','id');',因为第一个键是外键,第二个键是本地键。 –