2015-12-21 63 views
1

我正在使用模型來查詢遠程MySQL數據庫,並且當我運行查詢時,Laravel正嘗試連接到我需要它連接到的表的複數版本。該表的名字是activity和我得到的錯誤是:Laravel模型在查詢中將MySQL表重命名爲複數

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'health.activities' doesn't exist (SQL: select * from `activities`) 

我剛剛建立的模型此使用artisan make:model Activity所以我不知道是怎麼回事。這裏是我的模型:

<?php 

namespace App; 

use DB; 
use Role; 
use Illuminate\Database\Eloquent\Model; 

class Activity extends Model 
{ 
    private $activity; 

    function __construct() 
    { 
     $this->activity = DB::connection('mysql_remote')->table('activity'); 
    } 
} 

這裏是我的控制器:

public function getDashboard() 
    { 
     $data = [ 
      'page_title' => 'Dashboard', 
      'users'  => User::getUser(), 
      'test' => Activity::get(), 
     ]; 

     return view('dashboard.dashboard', $data); 
    } 

任何人有任何想法,爲什麼發生這種情況?

回答

6

模型期望表格被命名爲模型名稱的複數,在這種情況下,Activitiy的複數是activities,它是它所期望的表格名稱。如果不同,則需要添加一個table屬性來設置表的名稱。

在模型中,添加以下...

protected $table = 'activity'; 
+0

哇。感謝您的幫助和解釋! – dericcain