12月7日 补充数据库链式操作,只生成sql语句,不执行sql的几种函数以及thinkphp中验证器

news2024/11/14 17:44:27

补充知识:

        生成sql语句但是不会执行sql语句

public function fetchSqlTest(){
        $result = Db::name('user')->fetchSql(true)->select();
        //dump($result);
        //使用正常select查询默认中select(true)改为false即可返回sql语句
        $result = Db::name('user')->select(false);
        //dump($result);
        //返回上一条查询语句
        $result = Db::name('user')->getLastSql();
        //dump($result);
        //buildSql构造子查询
        $result = Db::name('user')->buildSql();
        //dump($result);
    }

日志

        需要掌握的知识点

                能够自己在不看官方文档的情况下写出日志初始化文件

Log::init([
    'type' = 'File',
    'path' = APP_PATH.'logs/'
]);

错误以及调试

        需要在application目录下的config.php中开启  

        数据库调试在application目录下的database.php文件中开启

验证

验证器

        两种情况

                在功能模块中独立验证              创建validate验证器

       $data = input(); 由input获取,那么则可以在地址栏进行传递验证器需要的验证规则,只有姓名是必须的,那么只需要传递姓名即可,其他是可选

 验证器在某些场景下是不需要执行的,所以就有了验证场景这一限制

<?php
namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    /*
     * 验证规则
     * */
    protected $rule = [
        'name'  => 'require|max:25',
        'age'   => 'number|between:1,120',
        'email' => 'email',
    ];
    /**
     * 错误信息
    */
    protected $msg = [
        'name.require' => '名称必须',
        'name.max'     => '名称最多不能超过25个字符',
        'age.number'   => '年龄必须是数字',
        'age.between'  => '年龄必须在1~120之间',
        'email'        => '邮箱格式错误',
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        'add'  => ['username'],
        'edit' => ['username', 'password', 'email', 'mobile'],
    ];
}

 通过验证器给出的场景,在功能中调用即可

 //使用验证器验证
    public function validate2(){
        $data = input();
        $validate = Loader::validate('User');
        if(!$validate->scene('add')->check($data)){
            dump($validate->getError());
        }
        $this->success('验证成功','','',10);
    }

内置规则

https://static.kancloud.cn/manual/thinkphp5/129356

表单令牌

这里的__token__跟session cookie中提到的token不一样

__token__:是为了验证用户是否从表单提交

token:Token 是一种令牌,它是一个随机生成的字符串,用于识别用户的身份。Token 通常被用作一次性令牌,用于防止跨站请求伪造 (CSRF) 攻击。在 PHP 中,可以使用函数 `uniqid()` 来生成一个唯一的 token。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UNIX/LINUX操作系统内核结构

通用操作系统的现状和分类 UNIX操作系统的根本特点&#xff1a;分时多用户、开放性 基本功能特征 系统结构 操作系统核心 系统调用的集合及实现系统调用的内部算法就形成操作系统核心 系统调用 以函数形式提供给核外的命令和上层应用系统使用的一组程序&#xff0c;涵…

观察者模式

目录 一、观察者模式解决了哪些问题&#xff1a; 二、体检的小栗子 三、什么是观察者模式 四、代码实现 一、观察者模式解决了哪些问题&#xff1a; 对象之间的一对多依赖关系应该在不使对象紧密耦合的情况下定义。应该确保当一个对象改变状态时&#xff0c;自动更新无限数…

5-5:显示系统的通知

通知列表 显示评论、点赞、关注三种类型的通知。 通知详情 分页显示某一类主题所包含的通知。 未读消息 在页面头部显示所有的未读消息数量 通知存在message表里面 修改MessageMapper.java package com.nowcoder.community.dao;import com.nowcoder.community.entity.Messa…

毕业2年,跳槽到我们公司拿18K,这就是00后卷王带来的压迫感吗?

内卷&#xff0c;是现在热度非常高的一个词汇&#xff0c;随着热度不断攀升&#xff0c;隐隐到了“万物皆可卷”的程度。 在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不…

AI 也会写代码了,但我并不担心

如果你比较关注人工智能&#xff0c;可能会注意到最近圈子的人都在刷屏一个 AI 玩意&#xff0c;叫 ChatGPT 。我一直关注的和菜头在他的公众号槽边往事上就接连写了几篇文章。为什么和菜头是男的&#xff0c;读者却要叫他“婶婶”怎么把AI逼到生气水文与干货如果看完上面的第一…

一行代码 网页变灰

背景 想必大家都感受到了&#xff0c;很多网站、APP 在昨天都变灰了。 先来感受一下变灰后的效果。 让网页变为黑白配色&#xff0c;是个常见的诉求。而且往往是突如其来的诉求&#xff0c;是无法预知的。 当发生这样的需求时&#xff0c;我们需要迅速完成变更发布。 这种…

机器学习 决策树 随机森林

文章目录参考决策树指标基尼系数基础公式公式理解引入划分后的公式划分后公式的理解信息熵、信息增益如何理解信息熵两种指标的对比总结参考 b站视频 【决策树、随机森林】附源码&#xff01;&#xff01;超级简单&#xff0c;同济大佬手把手带你学决策树决策树模型及案例&…

收藏 外贸企业必备的跨境电商B2B出口报关完整指南

跨境企业想要将货物出口到国外&#xff0c;报关是重要步骤之一&#xff0c;它是货物合法进出国境的通行证。许多初入跨境电商行业的B2B企业在报关上由于无人指引走了许多弯路&#xff0c;浪费了时间。 一.跨境出口模式 根据海关总署规定&#xff0c;跨境电商出口的监管模式分为…

QDataStream(数据流)

QDataStream类实现将QIODevice的二进制数据串行化。一个数据流就是一个二进制编码信息流&#xff0c;独立于主机的操作系统&#xff0c;CPU或字节顺序。QDataStream可以实现c的基本数据类型的串行化。 构造函数&#xff1a; 常用函数 &#xff1a; atEnd()是否到达结束位置re…

基于jsp+ssm的旅游活动报名系统-计算机毕业设计

项目介绍 本系统主要采JSP语言进行编写&#xff0c;本系统数据库采用数据处理功能强大的MySQL来建立 管理员可以通过结伴休闲平台进行旅行社管理、个人活动管理、旅行社活动管理、客户管理、用户管理等。个人用户则可通过结伴休闲平台对进行发布活动、结伴活动等。旅行社用户…

STC15 - ExternalRAM_enable()/InternalRAM_enable()

文章目录STC15 - ExternalRAM_enable()/InternalRAM_enable()概述实验环境MCU的规格区别IAP15F2K61S2的使用限制实验的组合公用测试代码1. 没有焊接外部RAM ExternalRAM_enable()2. 没有焊接外部RAM InternalRAM_enable()3. 焊接外部RAM ExternalRAM_enable()4. 焊接外部RAM…

世界杯狂欢季,家居品牌仅靠4位UP增长2000wB站声量

时隔四年&#xff0c;2022年卡塔尔世界杯于11月21日正式开始&#xff0c;直至目前比赛进度已过半程&#xff0c;这场世界赛事备受各国瞩目&#xff0c;全网有关于“足球”的运动信息接踵而至。 飞瓜数据&#xff08;B站版&#xff09;显示&#xff0c;B站平台带有“世界杯”标…

React源码之概念篇

React主要的三部分 这是从ReactDom.render后触发的步骤 调度协调渲染 设计理念 首先在React中需要在浏览器刷新一次就需要执行如下的步骤&#xff1a; JS脚本执行->样式布局->样式绘制&#xff0c;如果js执行时间超过了16.6ms&#xff0c;那么就没有时间留给样式布局…

[附源码]计算机毕业设计良辰之境影视评鉴系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【viper】go 配置管理神器viper使用详解

目录一、viper简介二、基本使用1.viper基本配置2.读取配置3.自定义配置源4.注册别名4.获取环境变量5.获取命令行参数6.多实例使用7.监听配置变化三、读取远程配置四、保存配置一、viper简介 viper是一个应用程序解决方案&#xff0c;它支持在应用程序内使用&#xff0c;特性如…

基于元胞自动机的人员疏散模拟器研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

[前端面试题]:数组去重的几种方法

总结一些日常需要用到的一些api&#xff0c;也是在一些面试中会经常出现的题目&#xff0c;今天分享的是数组去重的几个不同的方法&#xff0c; 同时文章也被收录到我的《JS基础》专栏中&#xff0c;欢迎大家点击收藏加关注。 给大家推荐一个实用面试题库 1、前端面试题库 &am…

魔兽世界开服架设教程—魔兽国服停服时间已确定!玩家该何去何从

《魔兽世界》国服停止运营时间定在&#xff0c;2023年1月24日0点起 近期随着暴雪和网易公司先后发出的公告&#xff0c;《魔兽世界》国服关服时间已经十分确定了&#xff0c;国服停运时间定在明年的1月24号0点起正式关服。随着国服将关闭&#xff0c;魔兽私服即将崛起。毕竟在游…

【Java面试】并发

文章目录线程有那些状态&#xff1f;一个程序来显示状态切换过程正常执行流程阻塞执行流程等待执行流程说说线程池的核心参数wait和sleep的区别Lock和synchronized的区别Lock中Condition的使用说说Java中的悲观锁与乐观锁乐观锁悲观锁Hashtable和ConcurrentHashMap的区别&#…

【玩转算法】(初始)动态规划

本期主题&#xff1a;动态规划&#xff0c;及其相关oj题。博客主页&#xff1a;小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限&#xff0c;出现错误希望大家不吝赐 &#x1f341;1&#xff09;DP定义 动态规划是分治思想的延伸&#xff0c;通俗一点来说…