我正在建立一个条形码数据库,该数据库根据国家/地区名称从移动提供商的公司检索数据。
每个提供商都有针对特定国家/地区的自己的代码。某些提供商的国家/地区代码可能相同。
我的数据库中有3个表,分别为countries
,providers
和country_codes
。
对于这些表,我还有3个模型,分别为Country
,Provider
和CountryCode
。
我想使用模型在雄辩的Laravel之间创建关系。
表结构图1: Table Structures
表结构图2: Table Structures
我想在CountryCode模型中创建一个构造函数,当我在控制器中使用2个参数调用该模型名称时,它将为我提供放置在country_codes表行中的代码。
例如,当我致电:new CountryCode('Spain', 'Apple')
时,它应该返回64
。
如何使用模型和关系构建它?
我使用Laravel 6.x
答案 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');