Laravel - 扩展模型

标签 laravel inheritance eloquent extending-classes

我创建了一个 BaseModel 类,它从 Model 扩展而来。看起来一切正常,但现在我在保存时遇到了问题。我将重写此 BaseModel 中的 save() 方法。我只想在保存之前向模型添加一些属性。所以我这样做,然后调用returnparent::save($options);。方法签名仍然相同:public function save(array $options = [])

在执行插入时,它似乎会获取 BaseModel 类的名称作为表名称(它使用 base_models 作为表名称),而不是正在保存的实际模型。以前有人遇到过这个吗?从模型类扩展的正确方法是什么?

我最初创建了一些特征来处理一些额外的功能,但认为创建一个基本模型并让我的模型从中扩展会是一个更好的主意。

最佳答案

在您的模型(扩展基本模型的子模型)中显式添加表名称,例如:

class SomeChildModel extends BaseModel {

    // Manually set the table name
    protected $table = 'table_name';

}

关于Laravel - 扩展模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33580365/

相关文章:

php - 如何通过 ioncube 编码/加密 Laravel Blade 文件

php - Laravel 上的 auth 命名空间中没有定义命令

c++ - C++多类问题中的继承

html - HTML 标签可以继承父/封闭标签的类吗?

php - 使用 Laravel Eloquent 地按月或周分组

php - 集合上的 Laravel block 将第一个元素作为数组返回,第二个元素作为对象返回

ajax - 如何保护 Laravel 中的 ajax 请求?

java - java中的动态方法调度

php - Laravel 5.1 测试环境中的 Eloquent 模型事件

mysql - 迁移处理不支持的类型