在定义关系时,如何使用除id之外的模型属性来告诉hasOne模型?
我的课程是:
Site
id
zipcode
LocationData
id
zipcode
当我跑步时:
$site = Site::find(1);
$site->locationData
生成的查询是:
select * from `location_data` where `location_data`.`zipcode` = 1 limit 1
请注意,引用的zipcode列传递1(站点ID),但我希望它使用站点的zipcode代替。
注意:我不是问如何在子关系上设置外键,而是如何将该外键传递给父主键以外的属性。
答案 0 :(得分:1)
知道了。这是一个调整:
编辑模型并将primaryKey移至公开可见性:
class Site extends Eloquent {
public $primaryKey = 'id';
....
}
然后你只需要在需要时设置它:
$site = Site::find(1);
$site->primaryKey = 'zipcode';
$site->locationData;
答案 1 :(得分:0)
您可以在定义关系时声明关系键。
return $this->hasMany('Thing','key_to_use');