2017-08-03 93 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

相關問題