我正在使用模型来查询远程MySQL数据库,当我运行查询时,Laravel正在尝试连接到我需要连接的表的复数版本。该表的名称为activity
,我得到的错误是:
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);
}
任何人都知道为什么会这样?
答案 0 :(得分:6)
模型希望将表命名为模型名称的复数形式,在这种情况下,Activitiy
的复数是activities
,它是它所期望的表名。如果不同,则需要添加table
属性来设置表的名称。
在您的模型中,添加以下内容......
protected $table = 'activity';