小编use*_*946的帖子

Laravel种子表与复合主键

我需要使用复合主键创建一个表.我一直在寻找解决问题的多个选项来创建一个AUTO_INCREMENT字段以及其他一些字段,并使它们成为复合主键,但最终我成功地这样做了;

class CreateSpecificationTable extends Migration {

    public function up()
    {
        Schema::create('specification', function(Blueprint $table){
            $table->increments('specificationID');
            $table->integer('categoryID', false, true);
            $table->string('name', 100);

            $table->dateTime('created_at');
            $table->dateTime('updated_at')->nullable()->default(null);
            $table->dateTime('deleted_at')->nullable()->default(null);

            $table->foreign('categoryID')->references('categoryID')->on('categories');
        });

        DB::unprepared('ALTER TABLE specification DROP PRIMARY KEY, ADD PRIMARY KEY(specificationID, categoryID, name)');
    }
Run Code Online (Sandbox Code Playgroud)

该表的模型非常简单:

class Specification extends Eloquent {

    protected $table = 'specification';
    protected $primaryKey = array('specificationID', 'categoryID', 'name');
}
Run Code Online (Sandbox Code Playgroud)

然后播种机看起来像这样:

class SpecificationSeeder extends Seeder {

    public function run()
    {
        Specification::create(array(
        'categoryID'=>1,
        'name'=>'size',
        ));

        Specification::create(array(
        'categoryID'=>2,
        'name'=>'resolution',
        ));

        Specification::create(array(
        'categoryID'=>1,
        'naam'=>'connection',
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我php artisan …

php pdo laravel laravel-4

6
推荐指数
1
解决办法
4165
查看次数

标签 统计

laravel ×1

laravel-4 ×1

pdo ×1

php ×1