fastadmin笔记,关联查询,下拉框,关联下拉框查询,编辑时下拉框默认值
记录熟悉fastadmin框架时的笔记
关联查询
在model中增加方法
//方法名要与关联表名一致public function routeCfg(){//参数//参数一 关联的模型所在路径 //参数二 外键字段名称//参数三 关联的主键名称$cfg=$this->belongsTo('app\admin\model\route\Cfg','rc_serial','rc_serial')->setEagerlyType(0);return $cfg;}
在模型中调用
//copy index()方法/*** 查看** @return string|Json* @throws \think\Exception* @throws DbException*/public function index(){..............$list = $this->model->with(['routecfg']) //关联,与刚刚model的方法名一致->where($where)->where('rc_status','>=','3')->order($sort, $order)->paginate($limit);............}
下拉框设置
首先在模型中添加
/*** 尺寸* @return string[]*/public function psSize(){return ['2'=>__('Size 1'),'4'=>__('Size 2'),'6'=>__('Size 3'),'8'=>__('Size 4')];}
在lang zh-cn 中添加
return [............'Size 1' => '2','Size 2' => '4','Size 3' => '6','Size 4' => '8',
]
回到模型中,构造方法 _initialize() 中
public function _initialize(){............$this->view->assign("psSize",$this->model->psSize());}
在视图 view 中
<div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Ps_size')}:</label><div class="col-xs-12 col-sm-8"><select id="c-ps_size" class="form-control selectpicker" name="row[ps_size]">**<!-- psSize 为构造函数中添加的-->**{foreach name="psSize" item="vo"}<option value="{$key}" {in name="key" value="'1'" }selected{/n} name="key" >{$vo}</option>{/foreach}</select></div></div>
下拉框关联查询
在模型 model 中增加方法
/*** 下拉框* @return false|Model[]* @throws \think\exception\DbException*/public function getSerialList(){//从关联的model 中查询表的数据$listModel= model('app\admin\model\route\Cfg')->find();//条件查询,根据自己需求编辑$list = $listModel->field('rc_name,rc_serial')->where('rc_status','>=','3')->select();return $list;}
随后的操作和下拉框的一样,在构造方法中 添加,在视图中添加下拉框即可
编辑中下拉框默认值
和添加的大同小异,区别在于 option 标签中 {} 的值
<div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Ps_size')}:</label><div class="col-xs-12 col-sm-8"><select id="c-ps_size" data-rule="required" class="form-control selectpicker" name="row[ps_size]">{foreach name="psSize" item="vo"}<option name="key" value="{$key}" {in name="key" value="$row.ps_size"} selected{/in} >{$vo}</option>{/foreach}</select></div></div>