背景:在使用模型樹頁面佈局時呼叫 laravel-admin
前端元件中多圖上傳,刪除bug
寫在前面:有則改之,無則加勉
程式碼展示
佈局
public function index(Content $content)
{
$content->header('欄目管理');// 標題 詳見Content方法解析
$content->breadcrumb(['text' => 'Column'],); // 麵包屑導航
$form = $this->form();
$form->setAction('/admin/columns');// form表單資料提交地址
$content->row(function(Row $row) use ($form){
$row->column(6, $this->tree()); // 模型樹呼叫
$row->column(6, $form);// $form引入
});
return $content;
}
前端元件
protected function form()
{
return Admin::form(Column::class, function (Form $form) {
$form->select('parent_id', __('Parent id'))->options(Column::selectOptions());
$form->text('column_title', __('Column title'))
->rules('required|unique:columns, "column_title", {{id}}', [
'required' => '分類名稱不能為空',
'unique' => '分類名稱不能重複'
]);
$form->multipleImage('cover', __('Cover'))->removable()->help('可使用“Ctrl”進行多圖上傳');
$form->text('link', __('Link'));
$form->textarea('abstract', __('Abstract'));
$form->UEditor('content', __('Content'));
$form->tools(function (Form\Tools $tools) {
$tools->disableList();
$tools->disableView();
});
$form->footer(function ($footer) {
$footer->disableViewCheck();
$footer->disableEditingCheck();
$footer->disableCreatingCheck();
});
$form->saved(function (){
return redirect('/admin/columns'); // 完成後跳轉頁
});
});
}
排錯過程
1.首
- 首先是百度了錯誤資訊
×SyntaxError: Unexpected token < in JSON at position 0
- 結果是
JSON.parse
解析不了(很迷惑,因為本人前端比較菜。這是josn資料轉換不了?)
於是看了一下刪除時模型中資料的傳遞格式
var_dump()
結果是陣列,what?- 刪除資料傳遞的是
[]
,啊?這!(更疑惑了)
然後瞅了瞅底層程式碼
到現在為止,依然不知道問題是怎麼產生的,於是我換了種思路…
2.轉
在其他非佈局模組中嘗試多圖上傳,刪除可用。
問題找到了
3.尾
- 其他模組可以使用也就是說是前端元件的問題
- 我突然注意到,這是佈局後的頁面,前端元件中刪除完成後會調起跳轉,錯便錯在這個地方。
- 於是我將此 註釋掉 問題解決
$form->saved(function (){ return redirect('/admin/columns'); // 完成後跳轉頁 });
本作品採用《CC 協議》,轉載必須註明作者和本文連結