fastadmin的笔记

这篇笔记探讨了FastAdmin框架中模型ORM的一对一关系处理,包括belongsTo和hasOne的区别,以及如何过滤关联字段。此外,还提到了在模板中进行选择项匹配和限制弹窗数量的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值