1.belongsTo和hasone的用法
在使用模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同。以下举例说明两者的区别:
首先有user表 字段 id name password字段
然后有user_address表 id user_id city字段
在User模型中关联user_address表的时候使用hasOne,因为在user表中没有关联两个表的外键
在UserAddress模型中关联user表的时候使用belongsTo,因为在user_address表中有关联两个表的外键user_id
也就是外键在谁手中,谁在模型中就写belongsTo
2。如果需要过滤字段怎么办?
如果模型中使用了belongsTo(),是不能再模型中用field过滤的,而是在控制器中,用->with预关联的时候过滤,如图:
$list = $sto->where($where)
->with([
'dianpu' => function ($query) {
$query->withField('id,name');
},
])
但是模型的hasone可以直接用field:
public function profile()
{
return $this->hasOne('Profile')->field('id,name,email');
}
3.采用文档一对一关联查询,搜索时无结果
答:建议你直接使用supplier.id,然后使用formatter返回supperlier.name的数据,如
{field:'suppelier.id', title:'名称', formatter:(value, row, index){return row.supperlier.name;}}
5.TP模板中,select判断:
<select id="c-dianpu" class="form-control selectpicker" name="row[dianpu]">
{foreach name="FaultgradeList" item="vo"}
<option value="{$vo.id}" {in name="$vo.id" value="$row.dianpu"}selected{/in}>{$vo.name}</option>
{/foreach}
</select>
其中,name是循环的ID,value是传过来的值,当循环的ID键值等于 传过来的$row.dianpu,就选中该键,展示为当前键的值
6.如何定义每次只能弹出一个窗口
给按钮添加上一个属性 data-id="add" OR data-id="edit"
即可