1

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

我希望能够使用 Laravel 关系。

我有 3 个表 - 用户 - 语言列表 (userid|languageid) - 语言(定义)

我想确认这是正确的关系 A user {{one to many}} languagelist {{one to one}} language

4

1 回答 1

1

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

class User extends Eloquent {

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

在这种情况下,默认外键将是user_id,如果您的languagelistfor 关系中有不同的外键UserLanguagelist那么您必须像这样传递该外键

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 网站上阅读更多内容。

于 2013-09-27T06:26:44.810 回答