我正在构建一个注册表单并在此注册表单上向用户添加多个输入框,描述他们可以说的语言。
我希望能够使用Laravel关系。
我有3张桌子 - 用户 - LanguageList(userid | languageid) - 语言(定义)
我想确认这是正确的关系 用户{{one to many}}语言列表{{one to one}}语言
答案 0 :(得分:1)
好吧,你应该发布一些代码,无论如何,如果我理解你的问题,那么用户可以知道多种语言,User
模型可以与多种语言有关系(语言列表)
class User extends Eloquent {
public function languagelist()
{
return $this->hasMany('languagelist'); // user.id = languagelist.user_id
}
}
在这种情况下,默认外键为user_id
,如果languagelist
中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 website。