• 分享一个TP5实现Create()方法的心得


    在TP5中发现用不了以前3.X的Create()方法,虽然用input更严谨,但是字段比较多的话还是有些不艺术的
    3.X中的实现方法如下:

    $Model = D('User');
    $Model->create();
    $Model->add();

    在仔细阅读了TP5文档后,发现有这么一段:

    欣喜之余便测试了一下,发现返回的内容是个类,不能直接做修改,只能接着连贯操作:

    appcategorymodelCategory Object
    (
        [connection:protected] => Array
            (
            )
        [name:protected] => Category
        [table:protected] => 
        [class:protected] => appcategorymodelCategory
        [pk:protected] => 
        [error:protected] => 
        [validate:protected] => 
        [field:protected] => Array
            (
            )
        [visible:protected] => Array
            (
            )
        [hidden:protected] => Array
            (
            )
        [append:protected] => Array
            (
            )
        [data:protected] => Array
            (
                [title] => dd
                [sort] => 1
                [pcid] => 0
            )
        [change:protected] => Array
            (
            )
        [auto:protected] => Array
            (
            )
        [insert:protected] => Array
            (
            )
        [update:protected] => Array
            (
            )
        [autoWriteTimestamp:protected] => 
        [createTime:protected] => create_time
        [updateTime:protected] => update_time
        [deleteTime:protected] => delete_time
        [dateFormat:protected] => Y-m-d H:i:s
        [type:protected] => Array
            (
            )
        [isUpdate:protected] => 
        [updateWhere:protected] => 
        [relation:protected] => 
        [failException:protected] => 
    )
    

    仔细看了一下,当中有这么一段是我post的数据:

        [data:protected] => Array
            (
                [title] => dd
                [sort] => 1
                [pcid] => 0
            )
    

      翻看了一下tp5的model类,有这么一个方法:

    /**
         * 获取对象原始数据 如果不存在指定字段返回false
         * @access public
         * @param string $name 字段名 留空获取全部
         * @return mixed
         * @throws InvalidArgumentException
         */
        public function getData($name = null)
        {
            if (is_null($name)) {
                return $this->data;
            } elseif (array_key_exists($name, $this->data)) {
                return $this->data[$name];
            } else {
                throw new InvalidArgumentException('property not exists:' . $this->class . '->' . $name);
            }
        }
    

    调用了一下,果然可以获取到post的数组了。
    实现代码如下:

    $data = new Category($_POST);
    $data = $data->getData();
  • 相关阅读:
    autopoi升级到4.0版本修改方法
    JeecgBoot的前端Form升级为FormModel用法(支持 v-model 绑定)
    如何设计一张带二维码的打印报表?
    低代码概念报表-JimuReport1.1.09 版本发布
    分组报表怎么做,积木报表十分钟搞定!
    JeecgBoot 2.4.2 积木报表版本发布,基于SpringBoot的低代码平台
    低代码开发是如何解决企业招聘技术人才难题?
    JimuReport积木报表1.1.05 版本发布,免费的企业级 Web 报表工具
    Docker安装elasticsearch 7.7.0
    Jeecg 文件上传漏洞补丁说明
  • 原文地址:https://www.cnblogs.com/liuyi2614/p/5755457.html
Copyright © 2020-2023  润新知