写在前面的 没啥说的 上代码 思路就是先获取到?...后面的参数区,然后 利用字符串转数组方法获取到各个参数 var json = {}; var url = 'https://www.baidu.com/index.html?...a=12&b=asdf&c=&d'; url = url.replace(/.*\?.../,''); var arr = url.split('&'); var temp; for (var i = 0;i < arr.length;i++) { temp = arr[
写api接口时一般会在控制器中简单验证参数的正确性。 使用yii只带验证器(因为比较熟悉)实现有两种方式(效果都不佳)。 针对每个请求单独写个Model , 定义验证规则并进行验证。...缺点:写好多参数验证的Model 类。 使用独立验证器 中提到的$validator- validateValue() 方法直接验证变量值。缺点:写实例化很多验证器对象。...有么有“一劳永逸”的做法,像在Model 中通过rules 方法定义验证规则并实现快速验证的呢?有!...从验证规则中获取可赋值的属性。 使用参数验证模型 进行验证和存储验证错误消息。 使用魔术方法获取参数验证模型 中的验证错误消息。 <?
封装一个函数获取URL中的GET参数 需要支持锚点链接例如:http://localhost:8080/#/chatApp?...在的参数 使用substring方法获取到URL中的查询字符串(即从"?"...开始的部分)。然后使用split方法将查询字符串拆分成一个键值对数组。接着,使用map方法遍历这个数组,并将每一个键值对添加到一个对象中。...最后,使用typeof语句判断传入的参数在这个对象中是否存在,如果存在则返回该参数的值,否则返回空字符串。...= window.location.hash.substring(1); // 如果锚点后面有参数,把锚点后面的参数加入到search参数中 if(hash.indexOf("?")
作为自己的周总结,平时遇到的问题,以及一不小心踩的坑,记录下来自己当复习: 表单验证 表单验证,两个参数中至少需要一个(2个以上): public function rules() {...获取url中的host信息: # http://localhost Yii::$app->request->getHostInfo() 获取url中的路径信息(不包含host和参数): Yii...Yii::app()->request->url 只想获取url中的参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数的值...VarDumper::dump($var); // 使用2 第二个参数是数组的深度 第三个参数是是否显示代码高亮(默认不显示) VarDumper::dump($var, 10 ,true);...中让关联字段带搜索和排序功能 情境要求: 要在订单(Order)视图的gridview中显示出客户(Customer)姓名,并使其具有与其它字段相同的排序和搜索功能。
Modal也即是模态窗,通俗的说就是弹窗。是一款bootstrap的js插件,使用效果也是非常好。 为什么要使用modal就不必多说了,一个网站,在开发过程中你说你没用过js弹窗我都不信!...好的弹窗不仅仅给人以美感,也会让我们开发效率提高,甚至心情也会舒畅! 我们看看在yii2中如何使用modal。 比如我们之前添加数据的时候,通常情况下会点击按钮跳转到添加页面,保存后再跳转到列表页。...确实,你也可以直接在页面上echo $this->renderAjax();,不过需要提醒的是,该操作记得修改表单提交的action哦。...="#identifier" 来指定要切换的特定的模态框(带有 id="identifier") 以上,我们仅仅是在yii2中实现了modal的基本使用。...思考两个问题 modal如何结合gridview进行使用 modal中如果使用的是表单,表单提交后如何对数据进行验证
$invNums); getInvId方法就是之前说递归的时候的方法,得到数组$invNums,该数组用$invArr数组中的值作为键名,该键值是在数组中出现的次数 因为要在后台显示,最好还是给它一个键名...,数据提供者类,之前都是从数据库查询数据并且以数组项的方式或者Active Record实例的方式返回,直接实例化ActiveDataProvider类就行了 结果我使用这个报错,The "query"...意思是query属性必须是实现QueryInterface的类的实例,例如使用yii\db\Query或者yii\db\ActiveQuery,所以不能用这个去渲染数据到页面上 查看了一下手册,发现有一个...Data Provider这两者进行比较的话, 会发现数组数据提供者没有后面那两个高效,这是因为数组数据提供者需要加载所有的数据到内存中,2w条数据,在本地连接远程库,30s读取。...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:Yii2框架踩坑记录-数组数据渲染到后台页面带分页
GridView 两表联查/搜索/分页 当我们在一个网格视图中显示活动数据的时候,你可能会遇到这种情况,就是显示关联表的列的值,为了使关联列能够排序,你需要连接关系表,以及添加排序规则到数据提供者的排序组件中...第一个参数是关联表的类名 第二个参数是两张表的关联关系 // 这里id是books_type表的id, 关联books_info表的type_id return $this->hasOne(BooksType...Model--->BooksInfo class InfoSearch extends BooksInfo { public $type_name; //定义属性变量 // 只有在 rules() 函数中声明的字段才可以搜索...'book_name','type_name'], 'safe'], [['type_name'], 'safe'], ]; } public function scenarios() { // 旁路在父类中实现的...'prevPageLabel'=>'上一页', 'nextPageLabel'=>'下一页', 'firstPageLabel' => '第一页', 'lastPageLabel' => '最后一页'
在 GridView 小部件是从数据提供者获取数据,并以一个表格的形式呈现数据。表中的每一行代表一个单独的数据项,列表示该项目的属性。...在 DataGrid 小部件中的列是在 yii\grid\Column 类中进行配置的。它代表一个模型属性,并可以进行过滤和排序。 GridView 列显示常用操作 参数 type 为1的情况,该列就显示 [ 'attribute' => 'buy_num', 'label' => '商品总价...:Y-m-d 'create_at:date', // 长的时间显示:Y-m-d H:i:s 'create_at:datetime',...使用active records的惯例是建立一个搜索模型类继承活动记录类。然后用这个类定义搜索的验证规则和提供 search() 方法来返回 data provider 。
RESTful 老沙计划使用 xgh.nai8.me/xcx 作为接口的基本地址,将来会有比如 GET xgh.nai8.me/xcx/albums GET xgh.nai8.me/xcx/albums...这里要说明的参数是pluralize,在restful使用上一直存在两种观点,就是对于资源在url上的表现应该是单数还是复数问题,yii2默认是复数形式,如果你想使用单数可以将pluralize设置为false...在pluralize=false的情况下url是类似于 GET xgh.nai8.me/xcx/album 的样子。...在我们设置了urlManager后,yii2就变得智商满满了,当过来一个 GET xgh.nai8.me/xcx/albums 请求后,yii2知道这是一个要获取资源结果集的请求,则会去调用xcx模块下的...小提示:在兄弟连PHP原创视频中对这个原理也进行了详细的解析(《Yii2的RESTful讲解》第三节) 配置控制器 urlManager配置完成,接下来就是写一个控制器了,老沙对此很熟悉,不就是一个继承问题么
前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等。...URL 更多高级的用法参见官方文档,这篇文章仅仅介绍 Yii2 生成 URL 的几种方式。 Yii2 默认的 URL 链接格式 Yii2 默认的 URL 链接格式是指为开启 URL 美化时的格式。...未启用子模块的 URL 格式: // 参数 r 中的 article 表示控制器, view 表示动作 使用内置的 URL 生成工具,以后可以在不改变源码的情况通过配置即可美化整站的 URL URL 管理器 URL 管理器是一个名叫 urlManager 的内置应用组件。...在 WEB 应用和控制台应用中以通过以下两种方式创建 URL: \Yii::$app->urlManager->createUrl($params) \Yii::$app->urlManager
注意坑: 1.pjax必须包含使用到的所有js,也就是在页面中被应用到的pjax,都要被包含,否则js会在第一次执行pjax后失效 试图层 use yii\widgets\Pjax; Yii2 framework提供了一个Pjax widget帮助我们快速简洁的使用Pjax. 1. 引入Pjax <?php use yii\widgets\Pjax; ?...> 你也可以选择配置哪个链接和form表单使用Pjax,是否将新的Url添加到浏览记录,替换或者保持原样。如果Pjax没有响应,超时之后页面将会重新加载。...禁用pushState 有时候我们需要禁用pushState,更新数据的同时,保持Url不变,在线示例Demo,一个简单的投票示例代码,Pjax配置参数enablePushState需设置为false...,整个页面刷新会跳转页面的问题 pjax中的局部刷新中,改变了地址栏中的url改变了,当整个页面刷新时,整个页面跳转了,有没有什么好的解决办法,求具体代码?
数据提供者通常是窗口小部件一起使用。 Yii 包括: ActiveDataProvider − 使用 yii\db\ActiveQuery 或 yii\db\Query 来从数据库中查询数据。...SqlDataProvider − 执行 SQ 语句并返回数组形式的数据。 ArrayDataProvider − 使用一个大的数组,并返回它的一个切片。...数据窗口小部件,如:yii\grid\GridView,它有一个 dataProvider 属性,它需要一个数据提供者实例,并在屏幕上显示的数据。...objects $users = $provider->getModels(); var_dump($users); } SQL 数据提供者 yii\data\SqlDataProvider 类是使用原始的...], 'sort' => [ 'attributes' => ['id', 'name'], ], ]); // get
ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式。...下面以我自己做的一个使用ListView来展示数据的例子,来简单讲解一下ListView小部件的使用。...首先需要在控制器中new一个数据提供器,传给视图,示例代码如下: public function actionIndex() { $dataProvider = new ActiveDataProvider...】/index', [ 'dataProvider' => $dataProvider ]); } 接下来就是在视图文件中使用ListView来展示数据了,示例代码如下: 在ListView的'itemView'参数指定的视图文件中来编写每一条数据的展示格式了,示例代码如下: <?
参数有4个,但常用到的是前两个。 第一个是组别,组别的定义放在config/main-local.php下。...Yii2默认用的是英语(en-US),现在添加中文支持(zh-CN) 在component下添加如下块 'components' => [ ......但用Yii::t方法的主要原因是要实现多语言,如果只是显示一种语言,还不如做hardcode(yii2框架实际做的也是hardcode的语言显示) yii2没有提供现成的切换语言的控件,需要我们自己开发一个...2.在/common/config/main-local.php里配置可用的语言,供我们在控件中调用 在frontend/views/layouts/main.php里,添加代码显示我们的控件,因为控件中带html代码,还要防止它做转义处理 ...
); /** * 在多层继承中,调用上级某一层的构造函数,而不是单纯的父类构造函数 * 上级某一层的构造函数中如果调用了某个方法 * 并且这个方法被下层类重写过,那么会直接执行重写之后的方法...extensions 参数,如果没有配置,直接加载扩展清单文件 @vendor/yiisoft/extensions.php,否则使用配置的 extensions。...然后在 extensions 文件返回的数组中,可有含有 alias 和 bootstrap 参数,根据 alias 中的参数定义别名,根据 bootstrap 中的参数,使用 createObject...实例化对象(创建并运行各个扩展声明的 引导组件 ) 2、根据配置文件配置的 bootstrap 参数,使用 createObject 实例化对象(创建并运行各个 应用组件 以及在应用的 bootstrap...bootstrap 方法 4、注意:bootstrap 会直接将配置的类实例化,而不是在第一次使用的时候实例化,所以为了性能考虑 bootstrap 中的配置应该尽量少,而且只配置一些全局使用的类
Yii2 使用 RESTful?...这样,用户的数据就能通过美化的 URL 和有意义的 http 动词进行访问和操作。 b): 上面是没有加上版本的url配置,至于关于版本我将以新的一篇来说明....这个特殊的URL规则类将会建立一整套子URL规则来支持路由和URL创建的指定的控制器。...: 逐页列出所有用户 HEAD /users: 显示用户列表的概要信息 POST /users: 创建一个新用户 GET /users/123: 返回用户 123 的详细信息 HEAD /users/123...: 显示关于末端 /users 支持的动词 OPTIONS /users/123: 显示有关末端 /users/123 支持的动词 补充:Yii 将在末端使用的控制器的名称自动变为复数。
凡是我yii2学习社群的成员都知道,我不止一次给大家说构造表单100%使用yii2的ActiveForm来实现,这除了能和AR更好结合外就是自动生成csrf隐藏域,一个非常安全的举措。...针对于不同类型的请求一般方案是 GET 放到url中,比如http://url?...csrftoken=xxxx POST 放到表单的隐藏域 对于GET请求,这里有一点要说明,在一个网站中请求的...在HTTP头部增加属性 这个方法在思路上和上面的token方式一样,只不过将token放到了HTTP头部中,不再参数传递,通过XMLHttpRequest类可以一次性的给所有请求加上csrftoken这个...在CSRF这块,yii2框架采取了HTTP头部和参数token并行的方式,针对于每个请求,在beforeAction都会做一次判断,如下 // vendor/yiisoft/yii2/web/Controller.php
在Selenium WebDriver教程系列的这一部分中,我们将深入研究如何使用Selenium WebDriver查找断开的链接。...在检测到断开的链接时显示的HTTP状态代码 以下是网络服务器在遇到断开的链接时显示的一些常见HTTP状态代码: HTTP状态码 描述 400(错误请求) 服务器无法处理请求,因为提到的URL不正确。...在本Selenium WebDriver教程中,我们将演示如何使用Selenium WebDriver在Python,Java,C#和PHP中执行断开的链接测试。...它也可以用于在URL中传递参数,发送自定义标头等。...3.遍历URL以进行验证 请求模块的head方法用于将HEAD请求发送到指定的URL。该get_attribute方法的每一个环节上用于获取“ HREF ”锚标记的属性。
持久化对象 Kibana中可以查询到很多保存的对象,他们都存储在es中一个叫做.kibana的索引中。...搜索 存储在type为search中; 图表 存储在type为visualization中; 仪表板 存储在type为dashboard中; 每个plugins下的tab页都有一个对应的savedObject...1)); }; kbnUrl在components/url/url.js中声明: self.change = function (url, paramObj) { self....,ip和savedSearch 在页面进入到discover的时候,会进行两个操作: ip:获取索引列表 savedSearch:通过id查询保存在.kibana索引中的信息 这两个初始化的操作是通过路由的...resolve参数绑定的。
,有ajax或者html或者纯文本 响应错误的方法是可以自己定义的 错误组件的实质类是yii\web\ErrorHandle其他的配置参数可以去该类中查看public属性 Session的使用 ?...使用widget()方法来调用验证码模块,并且指定显示的DOM结构 {image} 表示显示验证码图片 {input} 显示验证码输入框 验证验证码 验证码在填写完成之后,还需要使用验证机制来完成验证码的验证...,在Yii2中,不需要自己去写验证,直接在表单模型的 rules 中调用 captcha 验证就可以了 ['verifyCode','captcha'], 数据分页 Yii2也提供了类似于TP的数据分页类...: \yii\data\Pagination 要使用它,需要先进行实例化: 实例化的时候,需要传入数据的总条数和每页显示的条数 控制器中操作 public function actionList(...) { //获取页码,参数需和Pagination中配置的参数一致 $page=Yii::$app->request->get("page");