单独对模块内容字段进行存储

2024-01-26 13:50 小编

怎么对模块的单独字段进行存储呢?

比如我在后台新建了一个jinzhixiugai字段,格式随便,例子以text为例,如下图

image.png

1、在前端任意页面存储这个字段值,随便一个页面就找他的内页吧,demo/show.html

form action="" class="form-horizontal" method="post" name="myform3322" id="myform3322">

    {dr_form_hidden()}

    <div class="fc-form-body">


        <div class="form-group">

            <label class="control-label col-md-2"> 测试存储字段值 </label>

            <div class="col-md-9">

                {dr_field_form($ci->module['field']['jinzhixiugai'])}

            </div>

        </div>


    </div>


    <div class="portlet-body form myfooter">

        <div class="form-actions text-center">

            <button type="button" onclick="dr_ajax_submit('{dr_url('demo/save/index', ['id'=>$id])}', 'myform3322')" class="btn green"> <i class="fa fa-save"></i> 存储内容</button>

        </div>

    </div>

</form>

myform3322:是我随便取的,保证form的三处代码都一样

jinzhixiugai:这个是字段的名称

{dr_url('demo/save/index', ['id'=>$id])}:是我新建的控制器地址,后面会说

效果如下:(现在不能点存储)

image.png

2、处理存储程序

新建控制器:dayrui/App/Demo/Controllers/Save.php

<?php namespace Phpcmf\Controllers;


class Save extends \Phpcmf\Home\Module

{


    // 存储字段值

   public function index() {


       // 初始化模块

       $this->_module_init();


        // 哪些存储字段

        $field = [

            'jinzhixiugai' => $this->module['field']['jinzhixiugai']

        ];


        $id = intval($_GET['id']); // 接收记录id号

        $data = $this->content_model->get_data($id);

        if (!$data) {

            $this->_msg(0, dr_lang('%s内容(#%s)不存在', $this->module['name'], $id));

        }


        // 这里可以判断权限,判断哪些人可以修改


        // 接收post存储值

        if (IS_POST) {


            // 初始化自定义字段类

            \Phpcmf\Service::L('Field')->app(APP_DIR);

            // 字段验证

            list($post, $return, $attach) = \Phpcmf\Service::L('Form')->validation(\Phpcmf\Service::L('input')->post('data', false), null, $field, []);

            // 输出错误

            if ($return) {

                $this->_json(0, $return['error'], ['field' => $return['name']]);

            }


            // 存储主表数据

            \Phpcmf\Service::M()->table_site(APP_DIR)->update($id, $post[1]);

            // 存储哪个表具体看你字段定的哪里的,这里是主表字段,所以我写了存储主表的方法,


            // 附件归档

            SYS_ATTACHMENT_DB && $attach && \Phpcmf\Service::M('Attachment')->handle(isset($data['uid']) ? $data['uid'] : $this->member['id'], \Phpcmf\Service::M()->dbprefix($this->content_model->mytable).'-'.$id, $attach);

            $this->_msg(1, '存储成功');

        } else {

            $this->_msg(0, '请用POST提交');

        }


   }


}

以上代码需要有一定的php基础才能看懂,关键部分我已经注释了


3、这时候点存储按钮就会提示存储成功

image.png

后台也可以看到他的新值了

Tag: 内容
在线咨询 拨打电话

电话

13363039260

微信二维码

微信二维码