如何在Laravel中雄辩地建立我的关系

时间:2019-10-20 11:42:00

标签: laravel laravel-6

我正在建立一个条形码数据库,该数据库根据国家/地区名称从移动提供商的公司检索数据。

每个提供商都有针对特定国家/地区的自己的代码。某些提供商的国家/地区代码可能相同。

我的数据库中有3个表,分别为countriesproviderscountry_codes

对于这些表,我还有3个模型,分别为CountryProviderCountryCode

我想使用模型在雄辩的Laravel之间创建关系。

表结构图1: Table Structures

表结构图2: Table Structures

我想在CountryCode模型中创建一个构造函数,当我在控制器中使用2个参数调用该模型名称时,它将为我提供放置在country_codes表行中的代码。

例如,当我致电:new CountryCode('Spain', 'Apple')时,它应该返回64

如何使用模型和关系构建它?

我使用Laravel 6.x

2 个答案:

答案 0 :(得分:1)

添加到提供者模型

 public function countries()
   {
    return $this->belongsToMany('App\Country');
   }

添加到国家/地区模型

public function providers()
    {
        return $this->belongsToMany('App\Provider');
    }

答案 1 :(得分:1)

您提出的方法签名与基本Eloquent Model类的构造函数不匹配:

setCurrencies(currencies => [...currencies, [euro, dolar/franc, 1/dolar]]);

查询范围允许类似的所需语法:

public function __construct(array $attributes = array())
{
   //...
}

示例实现应为您提供有关如何实现此目标的想法:

CountryCode::fromCountryProvider('Spain', 'Apple');
相关问题