Laravel关系使用什么用户可以说多种语言

时间:2013-09-27 05:42:42

标签: laravel laravel-4

我正在构建一个注册表单并在此注册表单上向用户添加多个输入框,描述他们可以说的语言。

我希望能够使用Laravel关系。

我有3张桌子 - 用户 - LanguageList(userid | languageid) - 语言(定义)

我想确认这是正确的关系 用户{{one to many}}语言列表{{one to one}}语言

1 个答案:

答案 0 :(得分:1)

好吧,你应该发布一些代码,无论如何,如果我理解你的问题,那么用户可以知道多种语言,User模型可以与多种语言有关系(语言列表)

class User extends Eloquent {

    public function languagelist()
    {
        return $this->hasMany('languagelist'); // user.id = languagelist.user_id
    }
}

在这种情况下,默认外键为user_id,如果languagelistUserLanguagelist之间的关系有不同的外键,则必须通过那个外键像

return $this->hasMany('languagelist', 'custom key');

现在,对于languagelist(每位用户)中列出的语言,与one-to-one表中存储的语言可能存在languages关系,在这种情况下,您必须创建one-to-one使用

languagelistlanguages之间建立关系
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

相关问题