我正在构建一个注册表单,用户在此注册表单上添加多个输入框,描述他们可以说什么语言。
我希望能够使用 Laravel 关系。
我有 3 个表 - 用户 - 语言列表 (userid|languageid) - 语言(定义)
我想确认这是正确的关系 A user {{one to many}} languagelist {{one to one}} language
好吧,无论如何,您应该发布一些代码,如果我理解您的问题,那么用户可以了解多种语言,因此User
模型可以与多种语言有关系(语言列表)
class User extends Eloquent {
public function languagelist()
{
return $this->hasMany('languagelist'); // user.id = languagelist.user_id
}
}
在这种情况下,默认外键将是user_id
,如果您的languagelist
for 关系中有不同的外键User
,Languagelist
那么您必须像这样传递该外键
return $this->hasMany('languagelist', 'custom key');
现在,对于languagelist
(每个用户)中列出的语言可能one-to-one
与存储在languages
表中的语言有关系,在这种情况下,您必须创建和使用之间的one-to-one
关系languagelist
languages
class Languagelist extends Eloquent {
public function language()
{
return $this->hasOne('language'); // default foreign key- languagelist_id
}
}
您可以使用创建关系的逆
class Language extends Eloquent {
public function languagelist()
{
return $this->belongsTo('languagelist');
}
}
在Laravel 网站上阅读更多内容。