我在Laravel迁移基础视图/表中找不到奇怪的错误1146

时间:2015-03-20 16:29:16

标签: php laravel migration

我确实使用此迁移文件从laravel迁移

    <?php

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

class MsCustomer extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('mscustomer', function(Blueprint $table)
        {
$table->increments("custid");
            $table->string("custname");
            $table->string("password");
            $table->string("email")->unique();
            $table->integer("balance");
            $table->string("role");
            $table->timestamps();

        });
    }

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

}

然后它成功了,一张名为&#39; mscustomer&#39;的桌子。是在我的数据库中制作的,然后我尝试通过调用mscustomer.php的模型来使用php artisan tinker,它包含

<?php namespace App;

use Illuminate\Database\Eloquent\Model;
class mscustomer extends Model {


}

然后我收到此错误 &#34; Illuminate \ Database \ QueryException,带有消息&#39; SQLSTATE [42S02]:未找到基表或视图:1146表&#39; twk.mscustomers&#39;不存在......&#34;

我能理解的是,我明确地创造了一个客户,但为什么它会寻找&#34; twk.mscustomers&#34; (&#39; s&#39;)落后,而不是twk.mscustomer。在这种情况下,我有什么错误吗?

请帮帮我。

注意:对于问题的不良风格感到抱歉,这是我第一次在这里提问。

1 个答案:

答案 0 :(得分:1)

这就是Laravel的工作方式。 Eloquent将假定模型类名的复数作为表名。您可以通过添加属性来覆盖此行为:

class mscustomer extends Model {
    protected $table = 'mscustomer';
}

除此之外,使用以大写字母开头的类名也很标准。在您的情况下Mscustomer(或MsCustomer}代替mscustomer