【发布时间】:2019-03-26 09:03:06
【问题描述】:
我的 Laravel 5.7 模型中有以下类(此处简化):
VEHICLE.PHP
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Vehicle extends Model
{
public function journeys()
{
return $this->hasMany('App\Journey');
}
}
旅程 PHP
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Journey extends Model
{
public function vehicle()
{
return $this->belongsTo('App\Vehicle');
}
public function users()
{
return $this->belongsToMany('App\User');
}
}
USER.PHP
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
public function journeys()
{
return $this->belongsToMany('App\Journey');
}
}
我在用户和旅程之间有一个中间表 (journey_user)(请参阅随附的架构)。
我可以轻松获取特定用户的所有旅程。但是我怎样才能获得特定用户使用的所有车辆?由于用户和旅程之间的多对多关系,标准的 hasManyThrough 方法似乎不起作用。
感谢您的帮助!
【问题讨论】:
-
车辆似乎是旅程的财产——所以最好的办法是经历这种关系。如果您想要一种轻松访问用户在整个旅程中使用的车辆的方法,那么我会为该逻辑创建某种存储库或服务......不在用户模型中。跨度>
标签: php laravel eloquent relationship