0

我确信这是因为雄辩,但是查询使用了错误的表SELECT

这是我的模型:

class Subcategory extends Model
{
    public function subcategory()
    {
        return $this->belongsTo(Category::class);
    }
}

这是我的控制器:

class SubcategoriesController extends Controller
{
    public function index()
    {

        $subcategories = Subcategory::all();

        return view('pages.subcategories', compact('subcategories'));

    }
}

最后是我的错误:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'developmnet.site.subcategories' doesn't exist (SQL: select * from `subcategories` where `category_slug` = budgets limit 1)

从错误中可以看出,查询中引用的表subcategories应该是categories表。

我的问题是如何在这个模型中引用正确的表格,因为我已经有一个用于我的主要类别的表格,而且它工作得很好。

4

1 回答 1

3

要覆盖模型的表名,您可以定义protected $table属性。在你的情况下:

class Subcategory extends Model
{
    protected $table = 'categories';

    // ..
}

如果你不这样做,Laravel 将从类名派生表名。在你的情况下:Subcategory => subcategories

于 2017-03-01T15:53:23.380 回答