#laravel #migration #relationship
Вопрос:
Я думаю, что делаю это правильно. У меня есть таблица пользователей, профиля и приложений. Ниже приведены миграции. Я думаю, что правильно связываю их при миграции, но мне нужен совет, чтобы убедиться. У 1 пользователя может быть 1 профиль, но много приложений.
Таблица Пользователей
public function up() { Schema::create('users', function (Blueprint $table) { $table-gt;id(); $table-gt;string('name'); $table-gt;string('email')-gt;unique(); $table-gt;timestamp('email_verified_at')-gt;nullable(); $table-gt;string('password'); $table-gt;rememberToken(); $table-gt;timestamps(); }); }
Таблица Профилей
public function up() { Schema::create('profile', function (Blueprint $table) { $table-gt;id(); $table-gt;integer('user_id')-gt;unsigned(); $table-gt;string('address')-gt;nullable(); $table-gt;string('apt')-gt;nullable(); $table-gt;string('city')-gt;nullable(); $table-gt;string('state')-gt;nullable(); $table-gt;string('zipcode')-gt;nullable(); $table-gt;string('homephone')-gt;nullable(); $table-gt;string('mobile')-gt;nullable(); $table-gt;string('occupation')-gt;nullable(); $table-gt;boolean('over18')-gt;nullable(); $table-gt;string('homechurch')-gt;nullable(); $table-gt;string('homechurchcity')-gt;nullable(); $table-gt;string('pastor')-gt;nullable(); $table-gt;string('howoftenattend')-gt;nullable(); $table-gt;timestamps(); $table-gt;foreign('user_id')-gt;references('id')-gt;on('users')-gt;onDelete('cascade'); });
Приложение
public function up() { Schema::create('pilgrim_application', function (Blueprint $table) { $table-gt;id(); $table-gt;string('besttimetocall'); $table-gt;string('nickname'); $table-gt;foreignId('user_id')-gt;constrained('users')-gt;onDelete('cascade'); $table-gt;foreignId('profile_id')-gt;constrained('profile')-gt;onDelete('cascade'); $table-gt;timestamps(); });
Ответ №1:
Работает ли ваша миграция в данный момент?
Сначала проверьте порядок файлов миграции, например
0000_пользователь
0001_профиль
1000_ паломничеств_приложение
1001_app_two
в случае нескольких приложений вы можете начать миграцию с другого номера для группировки файлов в списке, это может быть удобно, если вы хотите создать несколько приложений.
Кроме того, необходимо ли указывать пользователя и профиль отношений в миграции приложения паломничества?
С помощью связей в ваших моделях вы также можете получить доступ к приложению паломничества из пользовательской модели и наоборот.
$user-gt;profile-gt;pilgrim_application