У меня есть вопрос, что я не уверен, как решить или даже фраза для поиска ответа.Laravel 5 Eloquent Many to Many 2ndary table
У меня есть модель компании & Модель пользователя, которая связана с многими из многих.
Я хочу иметь таблицу user_pins. Пользователь может принадлежать нескольким компаниям и, следовательно, иметь разные контакты в каждой компании. Штырь уникален внутри компании, ни один из двух пользователей внутри компании не может иметь один и тот же. Пользователи в разных компаниях могут иметь один и тот же.
Так что для компании это одно для многих, для пользователя это одно для многих, но в целом много для многих, я не уверен, что это имеет смысл.
У меня есть таблица создана как
Schema::create('user_pins', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->integer('company_id')->unsigned();
$table->string('pin');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('company_id')->references('id')->on('companies')->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'company_id', 'pin']);
});
Как связать эту таблицу в моделях и использовать красноречив, чтобы получить доступ/создать/обновить его, чтобы он хранит как пользователя, так и компании?
таблица company_user уже используется во многих отношениях во многих отношениях с таблицами компаний и пользователей. Вы говорите, что я должен просто добавить поле на эту сводную таблицу для булавки? –
В таком случае, да, вы могли бы также. Не забудьте добавить составной уникальный индекс для 'company_id' и' pin'. –
Это имеет смысл. Как мне получить доступ к штырю через модели компании и пользователя. Например, если бы я хотел получить все пользовательские контакты через модель компании или только пользовательский контакт для данной компании через пользовательскую модель? –