tp5.1如何使用獲取器添加自定義字段?
問題描述
我有個(gè)表是個(gè)樹狀分類表,up_id對(duì)應(yīng)的是上級(jí)分類id,我就是想在表格里顯示時(shí),把up_id轉(zhuǎn)換為上級(jí)分類的name,該怎么辦呢?我覺得可以使用模型的獲取器實(shí)現(xiàn),但是不知道怎么用
表格數(shù)據(jù)的控制器方法是這樣的
//返回分類列表數(shù)據(jù)if(Request::isAjax()) { $list = ModelTree::order(['up_id','sort','id'])->paginate($this->request->get('limit', 20)); $data = ['code' => 0,'msg' => '正在請(qǐng)求中...','count' =>$list->count(),'data' => $list->items() ]; return Json::create($data);}
問題解答
回答1:問題解決了,哈哈
模型獲取器寫法
//上級(jí)分類名稱獲取器public function getUpNameAttr($value,$data){ $list = Tree::field(['name'])->where('id','=',$data['up_id'])->find(); if($list) {return $list['name']; }else{return '頂級(jí)分類'; }}
控制器寫法
//返回分類列表數(shù)據(jù)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' => '正在請(qǐng)求中...','count' =>$list->count(),'data' => $list->items() ]; return Json::create($data);}
顯示結(jié)果
相關(guān)文章:
1. docker - 如何修改運(yùn)行中容器的配置2. javascript - Web微信聊天輸入框解決方案3. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒有反應(yīng)4. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?5. javascript - 為什么form表單提交沒有跨域問題,但ajax提交有跨域問題?6. javascript - Ajax加載Json時(shí),移動(dòng)端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?7. javascript - history.replaceState()無法改變query參數(shù)8. javascript - 移動(dòng)端textarea不能上下滑動(dòng),該怎么解決?9. javascript - 關(guān)于audio標(biāo)簽暫停的問題10. javascript - 音頻加載問題
