我想要一个关于如何使用Eloquent在数据库中创建多个表的简单示例,例如: 我有一个模型“人”,从这个模型扩展了2个类:学生和教师,在数据库中我不想有一个表(人),我想有2个表(学生和老师)。
如何在Laravel(Eloquent)中实现这一点,只给我三个类(人,学生和教师)的代码。
非常感谢:)
答案 0 :(得分:2)
未经测试但应该有效:
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');
}
}
修改强>
我不知道背景,但也许特质是更好的选择。