首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Yii2框架踩坑记录-数组数据渲染到后台页面带分页

    的方便了,数据提供者类,之前都是从数据库查询数据并且以数组项的方式或者Active Record实例的方式返回,直接实例化ActiveDataProvider类就行了 结果我使用这个报错,The "query..." property must be an instance of a class that implements the QueryInterface e.g. yii\db\Query or its...意思是query属性必须是实现QueryInterface的类的实例,例如使用yii\db\Query或者yii\db\ActiveQuery,所以不能用这个去渲染数据到页面上 查看了一下手册,发现有一个...yii\data\ArrayDataProvider类,将一个大的数组依据分页和排序规格返回一部分数据 use yii\data\ArrayDataProvider; $provider = new..., 这个大数组的元素既可以是一些关联数组也可以是一些对象,所以把我们的数组$info扔进去,同样的方式去刷新页面,ok,值有了 但是有个问题,数组数据提供者与Active Data Provider和SQL

    2.1K50

    yii2开发后记

    我们用一个在models文件夹中的Operation.class里Operation类来继承yii\db\ActiveRecord来操作Operation表。...而且,像input这样的小部件,用ActiveForm类来展现,yii会对每个自动加入ajax验证,其一般的小部件都放在yii\widget\里,我们还可以在此文件夹里构建自定义的小部件类。...$this->deleteAll([where]); 注意和窍门 1.URL模块间跳转 在模块中用Url::to()方法创建URL时,会自动在前面添加模块名,导致无法跳转到其他模块,我们可以在字符串前添加...3.在JS中使用YII的变量 若想在JS中使用YII的URL变量等,可以使用html中的script标签,将变量在第一次渲染视图时预先解析出来,将下面代码放在需要使用变量的地方之前。...5.yii模型属性转数组 YII用toArray()方法可以将模型的属性转换为数组进行输出,可独立使用,也可以在查询时用连续操作方式使用。

    4.3K50

    搭建自己的PHP框架心得(二)

    本次更新,更新了函数规范上的一些问题,如将函数尽量的独立化,每一个函数尽量只单独做好一件事情,尽量减少函数依赖。还对框架的整体优化了一下,添加了SQ全局类,用以处理全局函数,变量。...类__URL__常量和全局类 TP里的__URL__等全局常量用着很方便,可以很简单的实现跳转等操作,而定义它的函数createUrl函数我又想重用,于是借鉴YII的全局类定义方法: 定义基类及详细方法...: 私有化构造函数,使无法用new来创建对象,也防止子类继承它并改写其构造函数; 用静态变量存放当前对象,定义静态方法来返回对象,如对象还未实例化,实例化一个,存入静态变量并返回。...构造其__clone魔术方法,防止clone出一个新的对象; DB类的sql查询函数 DB查询函数是一个很复杂的部分,它是一个自成体系的东西,像TP和YII的查询方法都有其独特的地方。...我这里暂时先借用TP的MODEL基类,有时间再慢慢补这个。 嗯,介绍一下像TP的查询里的方法联查的实现,其诀窍在于,在每个联查方法的最后都用 return this 来返回已处理过的查询对象。

    1.6K80

    CTFshow刷题日记-WEB-反序列化(web254-278)PHP反序列化漏洞、pop链构造、PHP框架反序列化漏洞、python反序列化漏洞

    ,析构函数会在到对象的所有引用都被删除或者当对象被显式销毁时执行 __serialize() 函数会检查类中是否存在一个魔术方法 __serialize()。...# fuck 替换为 loveU,从四个字符长度替换为五个字符长度 但是要注意替换发生在序列化之后,先来看一个普通的序列化字符串 O:11:"ctfShowUser":1:{ s:5:"isVip...";b:1;} # O 表示序列化类型为 class # 11 表示类名的长度为11 # 1 表示有一对参数 # s 表示字符串类型,后边的 5 就表示的是字符串的长度 # b 表示Boolean类型...";s:4:"user";} 只要让 t 的值为多个 fuck ,之后替换为 loveU,前边的长度不变,就可以把伪造的含有 admin 的字符串挤出去,替换掉原来的字符串,看下要伪造 admin 字符长度...然后默认不是用 php 引擎,所以写入是正常字符串,在 inc/inc.php 这读取语义又不一样了 具体步骤就是: 生成 base64 编码序列化字符串 将字符串在浏览器中保存为cookie

    2.8K41

    PHP面试题,面试必看!

    ==2、模型的变动== 新版的模型查询返回默认‘对象’,系统默认增加了’toArray’方法,许多开发者在’all’或’select’尝试使用’toArray’来 转换为数组,在此希望开发者能理解‘对象...’的概念,尝试使用‘对象’进行数据的使用,或者使用’db’方法进行数据库的操作,也提醒一下部分‘滥 用’’toArray’的开发者,’all’或’select’结果是对象的数组集合,是无法使用’toArray...在分布式和以及大型文件存储方面具有传统关系型数据库无法比拟的优势。 什么是Cookie,什么是Session?...答:require与include最主要的区别,a、require出错时,脚本将停止运行,而include出错的情况下,脚本将继续执行。...— 产生一个可存储的值的表示,返回值为字符串,此字符串包含了表示 value 的字节流,不丢失其类型和结构,可以存储于任何地方。

    3.2K20

    Yii2.0 RESTful API 认证教程

    上方进行简单介绍,内容来自 Yii Framework 2.0 权威指南 实现步骤 我们都知道 Yii2.0 默认的认证类都是 User,前后台都是共用一个认证类,因此我们要把API 认证类 单独分离出来...继承 IdentityInterface 将 common\models\User 类拷贝到 api\models\目录下,修改命名空间为api\models <?...; use yii\base\NotSupportedException; use yii\behaviors\TimestampBehavior; use yii\db\ActiveRecord; use...ok,不出意外的话,相信你已经可以收到一个access_token了,接下来就是如何使用这个token,如何维持认证状态,达到不携带这个token将无法访问,返回401 维持认证状态 实现认证只需两步:...在你的 REST 控制器类中配置 authenticator 行为来指定使用哪种认证方式 在你的 user identity class 类中实现 [yii\web\IdentityInterface

    2.2K30

    搭建自己的PHP MVC框架详解

    而类的自动加载,我们知道的__autoload()魔术函数,它会在你实例化一个当前路径找不到的对象时自动调用,根据传入的类名,在函数体内加载对应的类文件。...类__URL__常量和全局类 TP里的__URL__等全局常量用着很方便,可以很简单的实现跳转等操作,而定义它的函数cr/ /eateUrl函数我又想重用,于是借鉴YII的全局类定义方法: 定义基类及详细方法...: ① 私有化构造函数,使无法用new来创建对象,也防止子类继承它并改写其构造函数; ② 用静态变量存放当前对象,定义静态方法来返回对象,如对象还未实例化,实例化一个,存入静态变量并返回。...③ 构造其__clone魔术方法,防止clone出一个新的对象; DB类的sql查询函数 DB查询函数是一个很复杂的部分,它是一个自成体系的东西,像TP和YII的查询方法都有其独特的地方。...此异常类可以自己定义,但在catch语句中,我们需要规定要捕获的异常对象的类名,并且只能捕获到特定类的异常对象,当然我们可以在最后捕获一个异常基类(PHP内置异常类)来确保异常一定能被捕获。

    1.5K50

    搭建自己的PHP MVC框架详解

    而类的自动加载,我们知道的__autoload()魔术函数,它会在你实例化一个当前路径找不到的对象时自动调用,根据传入的类名,在函数体内加载对应的类文件。...: 定义基类及详细方法(以后的全局方法会写在这里) class BaseSqier{ //方法根据传入的$info信息,和当前URL_MODE解析返回URL字符串 public static function...: ① 私有化构造函数,使无法用new来创建对象,也防止子类继承它并改写其构造函数; ② 用静态变量存放当前对象,定义静态方法来返回对象,如对象还未实例化,实例化一个,存入静态变量并返回。...③ 构造其__clone魔术方法,防止clone出一个新的对象; DB类的sql查询函数 DB查询函数是一个很复杂的部分,它是一个自成体系的东西,像TP和YII的查询方法都有其独特的地方。...此异常类可以自己定义,但在catch语句中,我们需要规定要捕获的异常对象的类名,并且只能捕获到特定类的异常对象,当然我们可以在最后捕获一个异常基类(PHP内置异常类)来确保异常一定能被捕获。

    1.5K40

    详解yii2实现分库分表的方案与思路

    前言 大家可以从任何一个gii生成model类开始代码上溯,会发现:yii2的model层基于ActiveRecord实现DAO访问数据库的能力。...1)1库1表:yii2默认采用PDO连接mysql,框架默认会配置一个叫做db的component作为唯一的mysql连接对象,其中dsn分配了数据库地址,数据库名称,配置如下: ?...做IOC的一个典型事例,model层默认就会取这个db做为mysql连接对象,所以model访问都经过这个connection,可以从ActiveRecord类里看到。...如果要做到用户无感知,那必须对ActiveRecord类进行继承,进一步覆盖所有class method的实现以便插入选库选表逻辑,代价过高。...为什么数量都是2指数,是因为如果面临扩容需求,数据的迁移将方便一些。

    2.2K30
    领券