php - Laravel 自定义关系
问题描述
我有 3 个模型公司、计划和服务。我想要做的是每个公司都应该有 3-4 个计划,每个计划都有自己提供的服务。
每家公司可能有不同的计划,对于这些计划,他们可能有不同的服务。
我为计划创建了一个称为 Planable 的多对多多态关系,该表将包含公司的计划和这些计划的服务。但我无法检索特定公司计划的服务。
$company = Company::findOrFail($id);
foreach ($company->plans as $plan){
return $plan->services;
}
这是行不通的,它只显示一项服务,并且将每家公司与其计划和服务分开。
我想把它变成这样$company->plans->services
关系:
class Plan extends Model
{
public function companies(){
return $this->morphedByMany('App\Company', 'planable');
}
public function services(){
return $this->morphedByMany('App\Service', 'planable');
}
}
class Company extends Model
{
public function plans(){
return $this->morphToMany('App\Plan', 'planable');
}
}
class Service extends Model
{
public function plans(){
return $this->morphToMany('App\Plan', 'planable');
}
}
解决方案
推荐阅读
- matlab - 如何使用多个输入创建函数?
- java - 如何将压缩图像保存在新文件夹中
- javascript - 获取当前 url 主机名 NODE
- matplotlib - 如何添加颜色条以使用 jupyter 在我的 3d 曲面图中显示标量值
- spring - spring-cloud-gateway 全局过滤器,用于从访问令牌中提取安全信息并将其中继到下游服务
- angular - 删除行 - 总是在索引返回 -1 时删除最后一行
- php - 方法 Illuminate\Database\Query\Builder::routeNotificationFor 不存在
- sql - 使用 SQL 从 XML 中提取元素
- pyspark - 我想加入两个 DataFrames 并在 pyspark 中填充 NaN?
- r - 计算同一产品购买中最后一次购买的时间