国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - laravel-admin的多級聯動方法

laravel-admin的多級聯動方法

2021-08-25 15:00曉風xy殘月 PHP教程

今天小編就為大家分享一篇laravel-admin的多級聯動方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

laravel-admin的框架已經定義好的多級聯動可以去官網查看,這里就不再進行贅述,但是使用中發現功能與想要的東西有些偏差,剛進來默認的時候不好用,就自己改了改,增加了一個默認的方法。

以城市和地區的二級聯動為例,當我選擇沈陽時,地區列表變成和平區、沈河區、鐵西區等等,當我選擇大連時顯示瓦房店、甘井子等等

laravel-admin的多級聯動方法

首先,按照laravel-admin的文檔,在Model中添加

  1. public function __construct(array $attributes = [])
  2. {
  3. parent::__construct($attributes);
  4.  
  5. $this->setParentColumn('pid');
  6. $this->setOrderColumn('sort');
  7. $this->setTitleColumn('name');
  8. }

然后在form上添加城市和地區的select控件

  1.  
  2. protected function form()
  3. {
  4. return Admin::form(AreaModel::class, function (Form $form) {
  5.  
  6. $form->text('name', '名稱')->rules("required");
  7. $form->select('city_id','城市')->options(
  8.  
  9. DealCityModel::selectOptionsNoRoot()
  10.  
  11. )->load('pid', 'district')->loadOne('pid', 'district');//load方法是框架自帶的,定義在vendor=>encore=>laravel-admin=>src=>Form=>Field=>Select文件中,loadone是自己寫的,在后面會給出代碼district為自己定義的方法,pid是根據城市的變化而變化的下拉列表框名稱,也就是下面這個。
  12.  
  13. $form->select('pid','地區')->options(array(0 =>'請選擇地區'));
  14.  
  15. });
  16. }

在from方法后面新建一個district方法

  1. public function district(Request $request)
  2. {
  3. $cityId = $request->get('q');
  4.  
  5. $list = AreaModel::where(['city_id' => $cityId, 'pid' => 0])->get(['id', DB::raw('name as text')]);
  6.  
  7. foreach ($list as $key => $value) {
  8.  
  9. $arr[] = array("id" => $value->id, "text" => $value->text);
  10.  
  11. }
  12.  
  13. return $arr;//返回數組到地區的option
  14.  
  15. }

在vendor=>encore=>laravel-admin=>src=>Form=>Field=>Select文件里load方法后新建一個方法命名為loadone,代碼如下:

  1. public function loadOne($field, $sourceUrl, $idField = 'id', $textField = 'text')
  2. {
  3. if (Str::contains($field, '.')) {
  4. $field = $this->formatName($field);
  5. $class = str_replace(['[', ']'], '_', $field);
  6. } else {
  7. $class = $field;
  8. }
  9.  
  10. $script = <<<EOT
  11. $(function(){
  12. var target = $(".$class");
  13. $.get("$sourceUrl?q="+$("{$this->getElementClassSelector()}").val(), function (data) {
  14. target.find("option").remove();
  15. $(target).select2({
  16. data: $.map(data, function (d) {
  17. d.id = d.$idField;
  18. d.text = d.$textField;
  19. return d;
  20. })
  21. });
  22. });
  23. });
  24. EOT;
  25.  
  26. Admin::script($script);
  27.  
  28. return $this;
  29. }

其實就是相當于給load方法增加了一個默認時的數據填充。

最后,千萬別忘記在路由上加上district方法哈,要把定義district的路由寫在上面→

laravel-admin的多級聯動方法

以上這篇laravel-admin的多級聯動方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。

原文鏈接:https://blog.csdn.net/qq_33541033/article/details/78707250

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品亚洲第一区在线暖暖韩国 | 久久伊人成人网 | 免费成人在线视频网站 | 毛片一卡 | 卡通动漫第一页 | 久久99久久99精品免视看婷婷 | 精品一区二区三区在线观看 | 寡妇激情毛片免费视频 | 欧美久久精品 | 欧美成人h版在线观看 | 色官网 | av在线网址观看 | 中文字幕精品一区二区精品 | 亚洲高清在线 | 成人精品鲁一区一区二区 | 黄色av网站在线观看 | 国产视频自拍一区 | 免费的av网站 | 一片毛片| 久久高清 | 天天摸天天做天天爽 | 国产精品亲子伦av一区二区三区 | 亚洲欧美日韩在线 | 黄色成人av | 日韩免费观看视频 | 吴梦梦到粉丝家实战华中在线观看 | 中文字幕二区 | 久久av综合 | 久久99精品久久久久久园产越南 | 自拍av在线| 亚洲一区二区久久 | 久久妇女| 亚洲国产成人精品女 | 日本一区二区三区四区 | 久久久久亚洲精品 | 一本大道av日日躁夜夜躁 | 国产精品一区二区三区四区 | 日本va欧美va精品发布 | 97在线观看视频 | 久草在线免费福利资源 | 久久精品国产亚洲 |