建站学院

铸就企业 服务社会 成就自己

pb后台内容列表增加自定义字段显示

发布时间:2023-05-01点击数:68

来源  https://www.pboot.cn/article/74.html


这两天接到两个客户需求,在Pb后台文章或者产品列表增加自定义字段显示,方法是相同的。

原理就是model不变,model是为了表关联,搜索的地方也有表关联,控制器controller获取要的数组给html 

/apps/admin/controller/content/ContentController.php

找到

            // 模型名称
            $this->assign('model_name', model('admin.content.Model')->getName($mcode));

------大约62行------ 增加下面代码

            //特定扩展字段
            $all_extfiled = model('admin.content.ExtField')->getModelField($mcode);
            $static_extfield = [];
            foreach ($all_extfiled as $extfield_key => $extfield_info) {
                if(in_array($extfield_info->name, ['ext_price'])){   //['ext_自定义字段']
                    $static_extfield[] = $extfield_info;
                }
            }
            $this->assign('static_extfield', $static_extfield); //特定

ContentController代码,Model中要添加自定义字段 'content_ext.*',


/apps/admin/view/default/content/content.html

找到

后台显示

<th>标题</th>

------大约41行------ 增加下面代码

<!--自定义字段栏目_edit-->
{if(get('mcode')==3)}
 {foreach $static_extfield(key,value)}
   <th>[value->description]</th>
 {/foreach}
{/if}


2,找到 77行

{if($value->outlink)}
  <span class="layui-badge layui-bg-black">链</span>
{/if}

------大约80行------ 增加下面代码

<!--自定义字段内容_edit-->
{if(get('mcode')==3)}
   {foreach $static_extfield(field_key,field_value)}
      <td> <?php $field_name = $field_value->name; echo $value->$field_name?></td>
   {/foreach}
{/if}


html代码

如果想在列表处多显示自定义的字段,只需要在ContentController中增加就好。注释特定扩展字段中,在'ext_xqf' 里继续添加,如'ext_xqf','ext_bianhao','ext_dh'记得用小逗号隔开。 

修改过的文件:

app.rar