TP5.0中的小知识总结

2017年6月26日15:01:23
1.input    获取输入数据 支持默认值和过滤;接收用户在前台输入的数据,可以是get方式也可以是post方式。
2.ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得非常简单,可以直接在Db类查询的时候调用paginate方法:
    分页功能:杂项>分页
3.递归方法实现无限极分类
    //递归方法实现无限极分类
    protected function getTree($data, $parent_id = 0, $level = 0, $field = ‘acategory_id‘) {
        static $tree = [];
        foreach ($data as $row) {
            if ($row[‘parent_id‘] == $parent_id) {
                $row[‘level‘] = $level;
                $tree[] = $row;
                $this->getTree($data, $row[$field], $level + 1, $field);
            }
        }
        return $tree;
    }
注解:
    1.无限极分类的方法必须写到基类控制器中,也就是子控制器继承的父类控制器当中,然后子类控制器可以直接用$this->getTree()调用
    2.无限极分类中的各个参数都要明白是什么意思。是必须要掌握的。
4.后台要做那种搜索功能的,那些属性必须被包括在form表单中,action和method也是必须要设置的。这样才能去到对应的控制器中调用对应的方法。
5.添加文章之前需要进行判断,添加的时候需要设置form中的method为post方法,如果是post提交则直接调用save方法,在save方法中接收用户输入的数据,从而保存到
数据库中。
    if ($this->request->isPost()) {
            // 调用save方法
            return $this->save();
        }
6.$data = $this->request->post();注解:是TP5.0用来接收用户前端输入的数据,接收的是一个一维数组。
7.strip_tags()函数用来剥去字符串中的HTML标签。
8.mb_substr() — 获取部分字符串
9.html_entity_decode() 函数;把 HTML 实体转换为字符。
10.修改数据的时候也要进行判断,如果是修改就调用update方法,否则,显示对应的页面数据就行。      
    if ($this->request->isPost()) {
            return $this->update();
        }
1.$data[‘promoted‘] = intval($data[‘promoted‘] ?? 1);这句话的解释就是如果有就是$data[‘promoted‘],否则就是1,三元运算符的新形式
2.删除对应的数据时,需要传对应的数据id值。

时间: 2024-10-08 14:42:21

TP5.0中的小知识总结的相关文章

Django 2.0.7 使用小知识

Django 2.0.3 使用小知识 运行环境: Python 3.6.4 Django 2.0.7 Django Admin中model显示为中文 定义model时,定义一个Meta对象,设置需要显示的中文名称.verbose_name为单数名称,verbose_name_plural为复数名称.因为中文没有区分单数.复数,所以都定义为一样的名称. from django.db import models class Article(models.Model): class Meta: ver

TP5.0中多图上传文件名重复问题

最近在做项目的时候出现了一个问题,这里记录一下: 问题: 使用TP5.0框架自带的文件上传方法后,发现多图上传可能会出现文件名重复的问题. 问题代码: 找到TP5框架上传文件命名方法,/thinkphp/library/think/File.php文件,buildSaveName方法(第394行): case 'date': $savename = date('Ymd') . DS . md5(microtime(true)); break; 解决办法: 文件命名方法可以修改一下: case '

字符中的小知识(“123”的十进制是多少)

在数据库,录入数据的时候,遇到一个小问题.当设置变量的类型为 Bit 时,你写进去的数据为:“123”时, 会显示一个这样的数值:3224115, 经过好几次的试验后,发现这不是一个偶然的数值,尝试了下'0'结果值为:48,'1' 结果值为:49 尝试了一下'10' 结果为: 12592 下面是分析: 我们知道对于任何一个数,在计算机中的表达的方式,均为二进制,为了方便,我们改用十六进制进行存储 由 '0'和‘1’  知道这是一个asccii值 48 49 但是对于‘10’这个值, ‘1’的十进

PHP注入中的小知识

1.显示位:用User()显示MySQL用户名:用version()显示MySQL的版本:database()显示数据库 2.MySQL4.0以上支持联合查询 3.MySQL5.0以上有一个新增的虚拟数据库information_schema,实际是不存在的,这个虚拟数据库中包含其他数据库的库名.表名和字段名,所以可以利用它来查询数据库的库名.表名(前面依旧是联合查询union select 1,2,3...,table_name,... from information_schema.tabl

java中一些小知识和面试问题

抽象类的总结几点: · 抽象类与普通类相比最大的不同只是在于抽象类之中存在有抽象方法,所以在抽象类之中依   然可以定义属性.构造方法等 · 抽象类声明时不允许使用 final,抽象类必须要求有子类,而 final 定义的类是不能够有子类的. · 抽象类之中即使没有抽象方法,那么也不能够被直接实例 JAVA 中的主方法可以说创造了一个长的之最,其组成有许多的关键字,下面来分析每一个关键字:  · public:指的是公共的:  · static:使用 static 定义的方法必须由类名称调用: 

Java中常量小知识

常量分类:常量分为静态常量,非静态常量(全局常量),局部常量 静态常量:要么定义的时候赋初值,要么在静态代码块中赋值 非静态常量:要么在定义的时候赋初值,要么在代码块中赋值 局部常量:可以在定义时赋初值,也可以在使用前赋值 注意:接口中只存在一种常量,就是静态常量,必须定义时赋值,因为在接口中不存在代码块. 为什么局部变量不初始化? 局部变量,都是存在栈中的.而栈是快速重复的大量使用,如果每次使用都初始化,开销会比较大,不如,直接让程序员来手动初始化.

PL/SQL中自定义异常小知识

一.概念 用户定义的异常错误是通过显式使用 RAISE 语句来触发.当引发一个异常错误时,控制就转向到 EXCEPTION块异常错误部分,执行错误处理代码. 对于这类异常情况的处理,步骤如下 : 在PL/SQL 块的声明部分定义异常情况 :<异常情况>  EXCEPTION; RAISE <异常情况> 在PL/SQL 块的异常情况处理部分对异常情况做出相应的处理. 二.程序 --例1:使用自定义异常变量 DECLARE   v_empno emp.empno%TYPE :=&

TP5.0中使用trace调试

1.在项目 的配置文件config.php 配置, 2.在程序中使用trace: 3.在浏览器网页上打开 得到如下图所示:点击 "用户变量",即可查看使用trace输出的变量 或者我们使用 trace(['name'=>'test'],'error'); 及在 "错误"栏查看 若是trace的第二个变量不是trace默认的话,需要在配置文件里自定义. 原文地址:https://www.cnblogs.com/jianlove/p/9246692.html

C#中 的小知识

1.   C# 提供的ToString()方法(将其他类型转换成字符串类型)进行类型转换,如int age;  string output=age.ToString( ); 2.   将字符串类型转换成其他类型用Parse()方法.如int.Parse(string);将字符串类型转换成整形,括号内放需要转换的字符串,前面是要转换的类型,再如double.Parse(string); 3.   前面讲的Parse()方法是用来将字符串转换为数值型的,下面认识一个更强大的转换方式--Convert