繁体   English   中英

Laravel / Eloquent的hasMany关系如何具有本地密钥?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM