未找到Laravel Base表或视图

时间:2017-08-03 10:36:51

标签: php mysql sql laravel database-migration

我很困惑,我试图找出错误的但我找不到它..

我的迁移文件:

<?php

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

class CreateClientProjectTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('client_project', function(Blueprint $table)
        {
            $table->increments('id');
            $table->integer('client_id');
            $table->integer('project_id');
            $table->timestamps();
        });
    }


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

}

首先,我检查表是否已创建,它是。

然后,致电route的{​​{1}}就是:(以controller为前缀)

admin

这些功能如下所示:

Route::post('projectsclients/postUpload', ['uses' => 'AdminController@storeProjectsClients', 'as' => 'admin.projectsclients.store']); 

错误:

  

找不到基表或视图:1146表&#39; web.client__projects&#39;   不存在

问题是我的表格是$client_project = new Client_Project(); $client_project->client_id = DB::table('clients')->orderby('id','DESC')->take(1)->get(); $client_project->project_id = DB::table('projects')->orderby('id','DESC')->take(1)->get(); $client_project->save(); 而不是client_project

我必须解决这个问题?

非常感谢,任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

您不应该使用_分隔类名。它应该命名为ClientProject。通常,如果表格有问题,您可以编辑模态并添加

ClientProject.php

public $table = 'client_project';

答案 1 :(得分:2)

您没有遵循Laravel命名约定。要解决此特定问题,您可以明确定义tabe名称。在class Client_Projects定义中添加以下内容:

protected $table = 'client_project';

但是要了解命名约定,我建议在此处阅读相关部分https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions