记录熟悉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>
在 控制器,添加中增加
/**
* 添加
*
* @return string
* @throws \think\Exception
*/
public function add()
{
if (false === $this->request->isPost()) {
//查找名称
$capachityList=Db::name("关联表名")->where("1=1")->order("字段 ASC")->select();
$this->view->assign("capachityList", $capachityList);
return $this->view->fetch();
}
......
......
}
在前端html页面中调用
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('名称')}:</label>
<div class="col-xs-12 col-sm-8">
<div class="radio">
{foreach name="capachityList" item="vo"}
<label for="row[capacity_str]-{$key}">
<input id="row[capacity_str]-{$key}" name="row[capacity_str]" type="radio"
value="{$vo.mc_name}" />
{$vo.mc_name}
</label>
{/foreach}
</div>
</div>
</div>