Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何访问Laravel中的关系_Php_Laravel_Laravel 5_Laravel Blade - Fatal编程技术网

Php 如何访问Laravel中的关系

Php 如何访问Laravel中的关系,php,laravel,laravel-5,laravel-blade,Php,Laravel,Laravel 5,Laravel Blade,我知道问题的标题不是很清楚,但请阅读完整的问题,因为我需要这方面的帮助 我有三张桌子 提议 车辆 修剪 关系是这样的 Offer.php public function vehicle () { return $this->belongsTo(Vehicle::class); } public function trims () { return $this->hasMany(Trim::class); } public function offers () {

我知道问题的标题不是很清楚,但请阅读完整的问题,因为我需要这方面的帮助

我有三张桌子

  • 提议
  • 车辆
  • 修剪
关系是这样的

Offer.php

public function vehicle () {
    return $this->belongsTo(Vehicle::class);
}
public function trims () {
  return $this->hasMany(Trim::class);
}

public function offers () {
  return $this->hasMany(Offer::class);
}
public function vehicle () {
  return $this->belongsTo(Vehicle::class);
}
Vehicle.php

public function vehicle () {
    return $this->belongsTo(Vehicle::class);
}
public function trims () {
  return $this->hasMany(Trim::class);
}

public function offers () {
  return $this->hasMany(Offer::class);
}
public function vehicle () {
  return $this->belongsTo(Vehicle::class);
}
Trim.php

public function vehicle () {
    return $this->belongsTo(Vehicle::class);
}
public function trims () {
  return $this->hasMany(Trim::class);
}

public function offers () {
  return $this->hasMany(Offer::class);
}
public function vehicle () {
  return $this->belongsTo(Vehicle::class);
}
在单一报价中,我可以访问
$Offer->vehicle
,但我如何访问此获取车辆的饰件?我试过这个
$offer->vehicle->trims
,但它不起作用。它应该可以工作,因为饰件与车辆相关

谢谢

我试过这个$offer->vehicle->trims它不起作用

“不工作”是什么意思?
trims()
将不会返回单个实例,而是必须迭代或以适当方式访问的迭代器。 检查:


您可以像这样获得实例的相关模型

Offers::with('vehicle.trims')->find($id);
如果你想走很长的路,你可以试试

Offers::with(['vehicle' => function($query){
      $query->with('trims');
})->find($id);

希望这能有所帮助。

您也可以使用即时加载查询-您可以传入一个闭包来处理即时加载内容的查询:

$result = Offer::with(['vehicle' => function($query) {
    $query->with('trims');
}])->get();