fastadmin的笔记

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" 即可

猜你喜欢

转载自blog.csdn.net/EasyTure/article/details/109337345