Este projeto usa a classificação em forma de árvore que vem com fastadmin. Se você pegá-la e usá-la diretamente, os seguintes problemas ocorrerão:
1. Símbolos não compilados aparecerão na página de lista de classificação de back-end
2. A página de edição mostrará que a classificação exibida não está correta. E a estrutura é caótica
Em primeiro lugar, vamos resolver o primeiro problema relativamente simples. Aqui estão duas soluções:
Primeiro: diretamente na categoria js correspondente, adicione escape:false,
os símbolos especiais da página de lista para que não haja nenhum símbolo especial;
segundo: na classe da árvore Substitua por  ;
outros símbolos que não precisam de escape, como-e semelhantes; a localização do arquivo do tipo de árvore está em extend/fast/Tree.php
;
Em segundo lugar, resolveremos o problema de classificação incorreta de exibição e confusão de estrutura na página de edição: a
página de adição é exibida normalmente. Para não afetar a página de adição, criamos um novo método no controlador correspondente para chamadas de página de edição. O
padrão é index
Método, criamos um novo idnex2
método, o código é o seguinte:
/**
* 查看
*/
public function index2()
{
//设置过滤方法
$this->request->filter(['strip_tags']);
if ($this->request->isAjax()) {
$search = $this->request->request("search");
$type = $this->request->request("type");
$keyValue = $this->request->request("keyValue",'');
$keyField = $this->request->request("keyField");
if($keyField=='id' && $keyValue){
$list=db('itemclass')->where('id',$keyValue)->select();
$total = count($list);
$result = array("total" => $total, "rows" => $list);
return json($result);
}
//构造父类select列表选项数据
$list = [];
foreach ($this->categorylist as $k => $v) {
if ($search) {
if (stripos($v['name'], $search) !== false) {
$list[] = $v;
}
} else {
$list = $this->categorylist;
}
}
$total = count($list);
$result = array("total" => $total, "rows" => $list);
return json($result);
}
return $this->view->fetch();
}
Em seguida, chame este método na página de edição correspondente
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Class_id')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-class_id" data-rule="required" data-source="class/index2" class="form-control selectpage" name="row[class_id]" type="text" value="{$row.class_id|htmlentities}">
</div>
</div>
Desta forma, a página de edição pode exibir a classificação correta e o estilo de classificação apresenta uma estrutura em árvore.