Laravel Model在查询时将MySQL表重命名为复数

der*_*ain 1 php mysql laravel

我正在使用模型来查询远程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)

任何人都知道为什么会这样吗?

use*_*496 6

模型希望将表命名为模型名称的复数,在这种情况下,复数Activitiyactivities它所期望的表名.如果不同,则需要添加table属性以设置表的名称.

在您的模型中,添加以下内容......

protected $table = 'activity';
Run Code Online (Sandbox Code Playgroud)