为了账号安全,请及时绑定邮箱和手机立即绑定

如何在子类中扩展 PHP Laravel 模型的可填写字段?

如何在子类中扩展 PHP Laravel 模型的可填写字段?

PHP
月关宝盒 2023-04-21 14:02:27
我尝试用其他一些领域扩展一个 extintig ˙PHP` Laravel 模型,但我没有找到正确的解决方案。我使用 PHP 7.1 和 Laravel 6.2这是我的代码,解释了我想做什么。原始模型:<?phpnamespace App;use App\Scopes\VersionControlScope;use Illuminate\Database\Eloquent\Model;class Product extends Model{    protected $fillable = [        'product_id',        'name',        'unit',        // ...    }    // ... relations, custom complex functions are here}正如我想象的如何扩展原始模型:<?phpnamespace App;class ProductBackup extends Product{    protected $fillable = array_merge(        parent::$fillable,        [            'date_of_backup',        ]    );    // ...}但是现在我收到Constant expression contains invalid operations错误消息。$fillable我可以在子类中以某种方式扩展原始模型的数组吗?
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

在你的子类构造函数中,你可以使用mergeFillable来自 trait 的方法Illuminate\Database\Eloquent\Concerns\GuardsAttributes(自动适用于每个 Eloquent 模型)。


/**

     * Create a new Eloquent model instance.

     *

     * @param  array  $attributes

     * @return void

     */

    public function __construct(array $attributes = [])

    {

        parent::__construct($attributes);


        $this->mergeFillable(['date_of_backup']);

    }


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信