テストが、動作するはずはない:
Docs
Person.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Person extends Model {
// ...
}
Student.php
<?php
namespace App;
class Student extends Person {
$table = 'students';
// ...
}
Teacher.php
<?php
namespace App;
class Teacher extends Person {
$table = 'teachers';
// ...
}
移行
あなたはphp artisan make:migration create_students_table --create=students
といつものような所望の移行を作成することができます。その後php artisan migrate
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateStudentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
// ...
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('students');
}
}
EDIT
に移行し、私は背景を知らないが、多分特色は、より良い代替手段です。
私は$ table変数について知らなかったので、参考になりました。しかし、このモデルの移行ファイルはどうでしょうか?コマンドphp artisan migrateを実行すると、テーブルの教師と学生には列が含まれていないためです。 –
いつものようにマイグレーションファイルを定義する必要があります。*マイグレーション*を編集してください。 –
マイグレーションファイル内のすべての列を定義する場合、PersonとStudentの間の継承の目的は何ですか? –