Laravel eloquent 模型不遵循 table 命名约定

Laravel eloquent model not following table naming convention

我正在尝试 运行 此代码:

$media = Media::first();

但是我收到这个错误:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'reshi.media' doesn't exist (SQL: select * from media limit 1)

这个特定模型似乎没有遵循表的命名约定。我没有在这个模型上设置 $table 属性。这就是它的样子:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Media extends Model {

    public function tags()
    {
        $this->belongsToMany('Reshi\Tag');
    }

    public function posts()

作为约定的一部分,它似乎遵循您的姓名间距。

只要这样做 - 它就会起作用:

class Media extends Model {

    protected $table = 'media';

    protected $guarded = [];
}

似乎 Laravel 将 Media 理解为 Medium 的复数形式。因此,他不会尝试从 table medias.

获取

检查: Issue - GitHub