我正在使用最新的背包,但在假地方面遇到了麻烦。 我想在表单中添加几个假字段。
当我仅通过输入添加字段时:
$this->crud->addFields([
[
'label' => 'TEST FAKE',
'name' => 'custom-11111111',
'type' => 'text',
'fake' => true,
'tab' => 'Dodatkowe pola',
],
]);
它完美地工作。但是,当我尝试从数据库中加载它们时:
$customFieldsCatCollection = $model->category->fieldcategories;
foreach($customFieldsCatCollection as $collection)
{
$customFieldsCollection = $collection->fields;
foreach($customFieldsCollection as $field)
{
$this->crud->addField(
[
'label' => $field->name,
'name' => 'custom-'.$field->id.'-custom',
'type' => 'text',
'fake' => true,
'tab' => 'Dodatkowe pola',
]
);
}
}
我无法保存它们。我在输入中键入数据,单击“保存”,第一个字段(手动定义)存储在数据库中,而其他所有假字段则不存储。
我的数据库和模型中都有extras
。
我试图通过PhpMyAdmin将一些伪数据放入数据库中,其名称与我的假字段相对应,并且从数据库中获取了数据,并在编辑模型数据时显示了这些数据,但未保存数据(例如手动添加的第一个字段) )。
调试栏显示的更新查询只有手动添加的字段,所有通过foreach
加载的内容都将被忽略。
有任何线索吗?有人吗?
更新
我进行了其他一些调试,发现可能会为该问题带来更多数据。
我更改了字段的名称(现在工作的字段称为custom-manual-1
,其余的字段称为custom-foreach-$this->id
,只是为了在调试中使其更加清晰。
我在dd($data)
的PanelTraits \ Update.php中拥有update($id, $data)
结果是:
array:7 [▼
"id" => "1"
"title" => "Test Ad ssssccc sa s sa as"
"body" => null
"active" => "0"
"package_id" => "1"
"custom-foreach-1" => "zaq"
"extras" => array:1 [▼
"custom-manual-1" => "qaz"
]
]
看起来背包“认为”我的假字段(通过foreach提供)实际上是数据库字段而不是假字段。