Laravel Отношения, что использовать Пользователь может говорить на нескольких языках

Я создаю форму для регистрации и на этой подписке формирую пользователя, чтобы добавить несколько полей ввода, описывающих языки, на которых они могут говорить.

Я хотел бы иметь возможность использовать отношения Laravel.

Я получил 3 таблицы - User - LanguageList (userid | languageid) - Языки (определение)

Я хотел бы подтвердить, что это правильное соотношение. Пользователь {{one to many}} язык языка {{один к одному}}

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.

licensed under cc by-sa 3.0 with attribution.