我的表单中包含一些项var A = class A {};
var B = class B extends A {};
var C = class C extends B {};
var proto = C.prototype;
while (proto !== Object.prototype) {
console.log(proto.constructor.name, proto.constructor);
proto = Object.getPrototypeOf(proto);
}
,firstname
,surname
在我的模特中我有
checkbox
$fillable = [firstname, surname, checkbox]
在我的数据库中只包含$appends = [checkbox]
和firstname
复选框的目的是在观察者中发出保存信息。
我想使用质量分配来设置所有这些项目。
但是,在保存模型时,它会尝试将surname
保存在数据库中。
如何克服这个?
我不想单独用checkbox
分配它,因为我最终会有很多不同的项目。
答案 0 :(得分:0)
我使用的是基于Laravel的10月CMS,它们具有Purgeable
特征。
这会在将数据保存到数据库之前删除值。它可能需要为您的目的进行一些修改,但它可能是一个开始的好地方。
https://octobercms.com/docs/database/traits#purgeable https://github.com/octobercms/library/blob/master/src/Database/Traits/Purgeable.php
答案 1 :(得分:0)
据我了解,您想要为模型执行动态属性, 您可以通过以下方式完成:
metadata
创建另一个表格,其中包含以下列:key
,value
和model_id
。Metadata
创建$fillable = ['key', 'value']
模型。hasMany
模型在默认模型中添加Metadata
关系。使用额外属性键创建一个数组
$metadata = ['checkbox', 'foo', 'bar'];
在数组上执行循环并保存值
foreach($metadata as $key) {
$model->metadata()->create([
'key' => $key,
'value' => Request::get($key)
]);
}