[英]How can Laravel / Eloquent's hasMany relationship have a local key?
在laravel中,当表A中的单个条目(例如,用户)与表B中的许多条目(例如,付款方式)相关联时,我们定义了“具有许多”关系。
因此,在User.php模型中,我们设置:
return $this->hasMany('PaymentMethods', 'foreign_key', 'local_key');
外键很有意义,例如它可以是userid
,因为付款方式表B中的每个条目将只有一个用户。 但是,为什么可以在此处设置本地密钥? 当与许多付款方式相关联时,users表如何具有“付款方式” ID键,因此不能将其设置为单个付款方式ID?
同样,要完成这种关系,我必须在PaymentMethod.php模型中定义一个EmiratesTo:
return $this->belongsTo('User');
在这里,是否应该只设置第二个参数,即本地密钥(例如userid
)?
如果关系基于与用户主键不同的列,则可以定义local_key
。
如果您坚持使用默认值,则主键将被命名为id
并引用列,例如user_id
。 然后,您可以简单地执行以下操作:
return $this->hasMany('PaymentMethod');
和
return $this->belongsTo('User');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.