我有以下数据库结构:
表格地址:
id
state -> state code
country -> country code
(上表结构无法更改)
表国家:
id
code (unique)
表陈述:
id
country_id (id from countries table)
code (unique for country_id)
问题是 - 是否可以为状态定义Address
模型关系?
如果我使用:
public function stateRel()
{
return $this->belongsTo(__NAMESPACE__ . '\\State', 'state','code');
}
它显然不会起作用,因为如果我有2个具有相同代码的州(属于其他国家/地区),它将无法找到正确的代码。它还应该使用country
中的addresses
来与状态中的country_id
进行比较,但要使其更复杂country
不会保留ID,而是来自countries
的代码} table。
答案 0 :(得分:1)
您是否尝试过对belongsTo关系的约束?
public function stateRel()
{
return $this->belongsTo(__NAMESPACE__ . '\\State', 'state','code')->where('country_id', $this->country);
}