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
我正在尝试 运行 此代码:
$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