tp5.1 Comment ajouter des champs personnalisés à l'aide de getters ?
清风
清风 2020-02-08 11:07:50
0
1
1442

J'ai une table qui est une table de classification d'arbre, et up_id correspond à l'identifiant de classification de niveau supérieur. Je veux juste convertir up_id en nom de la classification de niveau supérieur lors de son affichage dans le tableau. faire? Je pense que cela peut être implémenté en utilisant le getter du modèle, mais je ne sais pas comment l'utiliser

QQ图片20200208110805.png

QQ图片20200208110814.png

La méthode du contrôleur des données de table est comme ça

//返回分类列表数据
if(Request::isAjax()) {
    $list = ModelTree::order(['up_id','sort','id'])
        ->paginate($this->request->get('limit', 20));
    $data = [
        'code' => 0,
        'msg' => '正在请求中...',
        'count' =>$list->count(),
        'data' => $list->items()
    ];
    return Json::create($data);
}


清风
清风

répondre à tous(1)
清风

Le problème est résolu, haha

Comment écrire le modèle getter

//上级分类名称获取器
public function getUpNameAttr($value,$data)
{
    $list = Tree::field(['name'])->where('id','=',$data['up_id'])->find();
    if($list)
    {
        return $list['name'];
    }else{
        return '顶级分类';
    }
}

Comment écrire le contrôleur

//返回分类列表数据
if(Request::isAjax()) {
    $list = ModelTree::order(['up_id','sort','id'])
        ->paginate($this->request->get('limit', 20));
    foreach ($list as $item)
    {
        $item->append(['up_name']);
        $item['up_name'] = $item->up_name;
    }
    $data = [
        'code' => 0,
        'msg' => '正在请求中...',
        'count' =>$list->count(),
        'data' => $list->items()
    ];
    return Json::create($data);
}

Afficher les résultats

2020-02-08_130345.jpg

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal