【问题标题】:Table name won't change even after set in Laravel eloquent?即使在 Laravel eloquent 中设置后,表名也不会改变?
【发布时间】:2022-01-13 06:54:31
【问题描述】:

OrderProducts 雄辩:

class OrderProduct extends Model
{
    use HasFactory;

    protected $table = 'order_products';
}

我为我的表名创建了一个模型,名为order_products。 我雄辩的名字是OrderProduct。然后我将 Eloquent 中的表名改为 protected $table = "order_products"`。

仍然,我得到 order_product 表不存在问题? 为什么?

【问题讨论】:

  • 您的错误说 order_product 不存在,但您的表是 order_products 也许这是您的错误?
  • 类 OrderProduct 扩展模型 { 使用 HasFactory;受保护的 $table = 'order_products'; }
  • @LucasSaladini 是的。但我的表名是 order_products。当我尝试从 Eloquent 获取数据时,它说 order_product 不存在。实际表名是 order_products
  • 更改模型不会自动更改数据库中的表名

标签: php laravel eloquent laravel-8


【解决方案1】:

更改模型不会自动更改数据库中的表名

您可以通过在模型上定义表格属性来指定自定义表格名称:

class OrderProduct extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'order_products';
}

参考:https://laravel.com/docs/8.x/eloquent#table-names

【讨论】:

  • 我这样做了,但我仍然收到此错误
  • 你可以运行:composer dump-autoload -o,然后再试一次吗?
  • 试过了。不用找了。还是一样
  • 是否有理由不将数据库表名重命名为 Laravel 期望的名称?
  • 谢谢老兄。我发现了问题
猜你喜欢
  • 2012-12-01
  • 2015-06-02
  • 2017-10-25
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多