如何使外键与int类型相同?

时间:2015-09-24 06:45:29

标签: php laravel-4 database-migration

我在laravel中声明了以下迁移文件:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateProductsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products' , function($table){
            $table->increments('id');
            $table->integer('category_id');
            $table->string('title');
            $table->text('description');
            $table->decimal('height' , 6 , 2);
            $table->decimal('width' , 6 , 2);
            $table->decimal('length' , 6 , 2);
            $table->string('color');
            $table->string('material');
            $table->timestamps();

        });

        Schema::table('products' , function($table){
            $table->foreign('category_id')->references('id')->on('categories');
        });

    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('products');
    }

}

现在我运行php artisan migrate

我收到错误,因为类别中的id是int(10)和categories_id I.E.

$table->foreign('category_id')->references('id')->on('categories');

int(11)我如何制作int(10)?

2 个答案:

答案 0 :(得分:0)

我猜你以前的迁移是在之前版本的Laravel上运行的。如果是这种情况,您只需直接在数据库中修改categories.idint(11)的列类型。

否则,您可以使用Raw Query使用INT(10)添加列。

要确认版本更改导致此问题的假设,您可以在空数据库中运行所有迁移,并查看是否存在相同的问题。

答案 1 :(得分:0)

function selectFile(e) {
    var fileUploadControl = $("#profilePhotoFileUpload")[0];
    var file = fileUploadControl.files[0];
    var parseFile = new Parse.File("doc.pdf", file);
    parseFile.save().then(function(){
            var test = new Parse.Object("TestObject");
            test.set("file",parseFile);
            test.save();
    }, function(error) {
    });    
}