2017-08-03 98 views
0

我很困惑,我试图找到什么是错的,但我并不觉得..Laravel基表或视图没有找到

我的迁移文件:

<?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'); 
    } 

} 

第一所有,我检查表创建,它是。

那么,是谁来电来controllerroute是这样的:(由admin前缀)

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

的功能看起来像在这里:

$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(); 

和错误:

Base table or view not found: 1146 Table 'web.client__projects' doesn't exist

问题是我的表是client_project不是client__projects

我在哪里解决这个问题?

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

+0

请检查您的Client_Project模型在表名是对还是错 –

+0

或显示Client_Project模型 –

+0

如果我的答案是您的解决方案,那么我将添加此解决方案作为答案并接受我的答案 –

回答

2

你不应该把类名分解为_。它应该被命名为ClientProject。通常,如果有一个与表有关的问题,你可以编辑模式,并添加一个

ClientProject.php

public $table = 'client_project';

+0

它的工作原理,让我问你一些问题。为什么现在我得到:'一般错误:1366错误的整数值:'[{“id”:40,“name”:“hola”,“slug”:“hola”,“priority”:0,“created_at”:“ 2017-08-03 10:47:31“,”updated_at“:”2017-08-03 10:47:31“}]'列'client_id'在第1行(SQL:插入到'client_project'('client_id ','' –

+0

不知道@LluísPuigFerrer最好关闭发布另一个问题,以保持独立。我会假设你的插入查询client_id设置为null,但需要一个整数? – Ian

2

你没有关注Laravel命名约定。为了解决这个问题,你可以明确地定义tabe名字。在class Client_Projects定义补充一点:

protected $table = 'client_project'; 

但要了解命名约定,我建议阅读相关章节的文档这里https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions

+0

这是,我忘记了;)感谢队友,让我问你一些事情,为什么得到这个错误:'一般错误:1366错误的整数值:'[{“id”:40,“name”:“hola”,“slug”:“hola”,“priority” “created_at”:“2017-08-03 10:47:31”,“updated_at”:“2017-08-03 10:47:31”}]'在列1处的列'client_id'(SQL:insert into' client_project'('client_id',' –

+0

)你应该更新你的迁移并且在你的整数列中加上' - > unsigned()' –

+1

如果你foll按照他们的命名惯例,你不需要记住每次定义表名,而且你的生活变得更加简单:) – Nima

相关问题