我在 Laravel 迁移基础视图/表中找不到奇怪的错误 1146
Posted
技术标签:
【中文标题】我在 Laravel 迁移基础视图/表中找不到奇怪的错误 1146【英文标题】:I got strange error in Laravel migration base view/table not found 1146 【发布时间】:2015-05-24 03:37:25 【问题描述】:我确实使用此迁移文件从 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');
然后它成功了,在我的数据库中创建了一个名为“mscustomer”的表,然后我尝试通过调用一个名为 mscustomer.php 的模型来使用 php artisan tinker,它包含
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class mscustomer extends Model
然后我得到这个错误 “Illuminate\Database\QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'twk.mscustomers' doesn't exist......”
什么我看不懂,我明明创建了mscustomer,但是为什么后面找的是“twk.mscustomers”(带's'),而不是twk.mscustomer。在这种情况下我做错了什么吗?
请帮帮我。
注意:很抱歉提问的方式不好,这是我第一次在这里提问。
【问题讨论】:
【参考方案1】:这就是 Laravel 的工作原理。 Eloquent 将假设模型类名的复数形式作为表名。您可以通过添加属性来覆盖此行为:
class mscustomer extends Model
protected $table = 'mscustomer';
此外,使用以大写字母开头的类名也是非常标准的。在你的情况下Mscustomer
(或者可能是MsCustomer
)而不是mscustomer
【讨论】:
不客气。请accept这个答案将您的问题标记为已解决:)以上是关于我在 Laravel 迁移基础视图/表中找不到奇怪的错误 1146的主要内容,如果未能解决你的问题,请参考以下文章
创建类别并重定向到 category.index 后,在 laravel 中找不到基表或视图
在 Laravel 5 中找不到类“App\Http\Controllers\Artisan”