我应该用不同的表为我的迁移制作多个模型吗
Should i make multiple models for my migration with different tables
我有一个包含多个 table 的迁移:状态,Status_project,Status_task。我可以仅使用使用迁移命令创建的 Status 模型来调用它们吗?
php artisan make:model Status -m
我在几个地方读到我必须为每个地方制作一个模型table,但是没有其他办法吗?除了 DB::table('statuses')。因为我的关系,我不喜欢多个模型
示例:
Schema::create('statuses', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
Schema::create('status_task', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('user_id')->nullable();
$table->unsignedBigInteger('task_id');
$table->unsignedBigInteger('status_id');
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('task_id')->references('id')->on('ongoing_tasks')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('status_id')->references('id')->on('statuses')
->onUpdate('cascade')->onDelete('cascade');
});
Schema::create('status_project', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('user_id')->nullable();
$table->string('project_id');
$table->unsignedBigInteger('status_id');
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('project_id')->references('id')->on('ongoing_projects')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('status_id')->references('id')->on('statuses')
->onUpdate('cascade')->onDelete('cascade');
});
DB::commit();
如果您计划使用 Eloquent 构建查询,则需要为每个 table 创建一个模型。如果您使用的是查询构建器,则无需为每个 table.
创建模型
我有一个包含多个 table 的迁移:状态,Status_project,Status_task。我可以仅使用使用迁移命令创建的 Status 模型来调用它们吗?
php artisan make:model Status -m
我在几个地方读到我必须为每个地方制作一个模型table,但是没有其他办法吗?除了 DB::table('statuses')。因为我的关系,我不喜欢多个模型
示例:
Schema::create('statuses', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
Schema::create('status_task', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('user_id')->nullable();
$table->unsignedBigInteger('task_id');
$table->unsignedBigInteger('status_id');
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('task_id')->references('id')->on('ongoing_tasks')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('status_id')->references('id')->on('statuses')
->onUpdate('cascade')->onDelete('cascade');
});
Schema::create('status_project', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('user_id')->nullable();
$table->string('project_id');
$table->unsignedBigInteger('status_id');
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('project_id')->references('id')->on('ongoing_projects')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('status_id')->references('id')->on('statuses')
->onUpdate('cascade')->onDelete('cascade');
});
DB::commit();
如果您计划使用 Eloquent 构建查询,则需要为每个 table 创建一个模型。如果您使用的是查询构建器,则无需为每个 table.
创建模型