我正在使用模型来查询远程MySQL数据库,当我运行查询时,Laravel正在尝试连接到我需要连接的表的复数版本.表的名称是activity,我得到的错误是:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'health.activities' doesn't exist (SQL: select * from `activities`)
Run Code Online (Sandbox Code Playgroud)
我刚为这个使用了这个模型,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');
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
public function getDashboard()
{
$data = [
'page_title' => 'Dashboard',
'users' => User::getUser(),
'test' => Activity::get(),
];
return view('dashboard.dashboard', $data);
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么会这样吗?
模型希望将表命名为模型名称的复数,在这种情况下,复数Activitiy是activities它所期望的表名.如果不同,则需要添加table属性以设置表的名称.
在您的模型中,添加以下内容......
protected $table = 'activity';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |