laravel - 具有多个外键的一对多关系 laravel
问题描述
我正在与 Laravel 合作一个项目。
我有两个彼此处于一对多关系的数据库表。它们由三个条件连接。如何在 Eloquent 中建模这种关系?
我不应该修改数据库架构,因为它必须保持与其他事物的向后兼容。
我尝试了以下方法,但它不起作用。拥有方:
use Illuminate\Database\Eloquent\Model;
class Route extends Model
{
public function trips()
{
return $this->hasMany('Trip', 'route_name,source_file', 'route_name,source_file')
}
}
反面:
使用 Illuminate\Database\Eloquent\Model;
class Trip extends Model
{
public function routes()
{
return $this->belongsTo('Route', 'route_name,source_file', 'route_name,source_file');
}
}
我不想使用“使用 Awobaz\Compoships\Compoships;”
解决方案
您需要为模型的命名空间提供hasMany()
和belongsTo
方法。像'App\Models\Trip'
或Trip::class
class Route extends Model
{
public function trips()
{
return $this->hasMany('App\Models\Trip', 'route_name,source_file', 'route_name,source_file')
}
}
class Trip extends Model
{
public function routes()
{
return $this->belongsTo('App\Models\Route', 'route_name,source_file', 'route_name,source_file');
}
}
推荐阅读
- vue.js - 范围内的 css 未在 vue 组件中复制
- node.js - 基于字段值的弹性提升分数
- deployment - 如何在 Visual Studio 的单个“部署”操作中部署多个逻辑应用 ARM 模板?
- reactjs - undefined 不是对象(评估“navigation.navigate”),无法在本机反应中正确渲染
- python - 使用 Monitor 录制 OpenAI 健身房视频
- kibana - 即使满足警报条件,ElastAlert 范围查询也不会发送警报电子邮件
- python - 按组汇总的Python数据框,在列中创建列表
- git - 为什么 Git 说我的分支是最新的并且没有什么要提交的?
- odoo - 呈现模板 web.frontend_layout 时出错
- slack-api - Slack API 未列出新频道