即使在 Laravel eloquent 中设置后,表名也不会改变?
Posted
技术标签:
【中文标题】即使在 Laravel eloquent 中设置后,表名也不会改变?【英文标题】:Table name won't change even after set in 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 更改模型不会自动更改数据库中的表名 【参考方案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 期望的名称?
谢谢老兄。我发现了问题以上是关于即使在 Laravel eloquent 中设置后,表名也不会改变?的主要内容,如果未能解决你的问题,请参考以下文章