Heim  >  Fragen und Antworten  >  Hauptteil

tp5.1 Wie füge ich benutzerdefinierte Felder mithilfe von Gettern hinzu?

Ich habe eine Tabelle, die eine Baumklassifizierungstabelle ist, und up_id entspricht der übergeordneten Klassifizierungs-ID. Ich möchte up_id nur in den Namen der übergeordneten Klassifizierung umwandeln, wenn ich sie in der Tabelle anzeige. Ich denke, es kann mit dem Getter des Modells implementiert werden, aber ich weiß nicht, wie man es verwendet

清风清风1738 Tage vor1417

Antworte allen(1)Ich werde antworten

  • 清风

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

    问题解决了,哈哈

    模型获取器写法

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

    控制器写法

    //返回分类列表数据
    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);
    }

    显示结果

    2020-02-08_130345.jpg

    Antwort
    0
  • StornierenAntwort