首页 > 解决方案 > 具有多个外键的一对多关系 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;”

标签: laravelmodelone-to-manyrelation

解决方案


您需要为模型的命名空间提供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');
    }
}

推荐阅读