recherche

Maison  >  Questions et réponses  >  le corps du texte

tp5.1 Comment ajouter des champs personnalisés à l'aide de getters ?

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);
}


清风清风1797 Il y a quelques jours1451

répondre à tous(1)je répondrai

  • 清风

    清风2020-02-08 13:02:26

    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

    répondre
    0
  • Annulerrépondre