Eloquent 使用错误的表名

kjd*_*n84 0 php mysql laravel eloquent

我有一个名为的模型ReferrerMedium以及表的迁移referrer_mediums

这是我的课程:

namespace App;

class ReferrerMedium extends \Eloquent
{
    //
}
Run Code Online (Sandbox Code Playgroud)

这是我的迁移:

Schema::create('referrer_mediums', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
});
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

foreach (ReferrerMedium::all() as $referrer_medium) {
    $options[$referrer_medium->name] = $referrer_medium->name;
}
Run Code Online (Sandbox Code Playgroud)

此代码导致错误Base table or view not found: 1146 Table 'leadbind.referrer_media' doesn't exist

为什么它尝试查询referrer_media表而不是referrer_mediums???

Con*_*hen 5

因为medium的复数类型是media,因此您应该在模型中手动指定表名称:

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

但我建议您应该进行迁移来更改表名称。