(非Yii2方法) 如下: 访问index方法时,datetime字段会被格式为"Y-m-d H:i:s"格式, 访问xls方法时,datetime字段会被格式为"Y年m月d日"格式, 匿名函数中的...$value表示字段原始值,$data表示select所列出的所有字段值 backend/modules/test/models/Test.php /** * 字段格式化...可参考Yii2的yii\db\Query的 andFilterWhere等方法和操作符格式 andFilterWhere可放心使用,搜索时字段非空才会执行。...$array[$key] : ''; } } 单行文本框: dropDownList('Test[status9]', '120000', $model::City(), ['prompt'=>'--请选择--', 'data-placeholder
php // 常用的就是建立哈希表,map()方法。一般在使用dropDownList的时候, // 会从查询出来的对象列表中获取到这样的$array供其使用。...php yii\helpers\Html::buttonInput() yii\helpers\Html::submitInput() yii\helpers\Html::resetInput() yii...php textInput(); // 文本框 passwordInput(); // 密码框 radio(),radioList(); // 单选框 checkbox()...(['rows'=3]); // 文本域 fileInput(); // 文件上传 submitButton(); // 提交按钮 resetButtun(); /...= $form->field($model, 'edu')->dropDownList(['1'=>'大学', '2'=>'高中', '3'=>'初中'], ['prompt'=>'请选择', 'style
kartikselect2Select2; //$data是键值对数组哦,key-value ,下面所声明的所有$data均为键值对数组,以该数组为例 $data = [2 => 'widget', 3 => 'dropDownList...]); 非ActiveFomr生成的更新数据的时候就需要默认选中,好办,加value值即可 use kartikselect2Select2; echo Select2::widget([ 'name...生成的,但是往往字段不是表字段怎么办呢?...php echo $form->field($model, 'title')->widget(Select2::classname(), [ 'options' => ['placeholder'...> 上面的代码可直接复制使用,唯独需要修改的就是ajax里对应的url地址。下面我们看看controller层代码是怎么提供数据的。
\yii\widgets\ActiveForm类提供了Bootstrap3的表单域,但在Yii2默认表单控件中,它的样式就没有那么美观了,那我们怎么在不修改其表单方法下,修改表单的样式呢?...php $form = ActiveForm::begin([ 'id' => 'msg-form', 'options' => ['class'=>'form-horizontal']...、下拉框 {error}:错误提示信息 表单使用方法: //文本域 //下拉选择框 field($model, 'edu')->dropDownList(['1'=>'大学','2'=>'高中','3'=>'初中'], ['prompt'=>'请选择','style'
php use common\models\Order; use imxiangli\select2\Select2Widget; use yii\helpers\Html; use yii\helpers...php $categoryUrl = \yii\helpers\Url::to(['product-category/ajax-list', 'parent_id...php \yii\bootstrap\ActiveForm::end(); ?...php $categoryUrl = \yii\helpers\Url::to(['product-category/ajax-list', 'parent_id' =>...php \yii\bootstrap\ActiveForm::end(); ?
提交后 复制代码 代码如下: Ccontroler->refresh(); 如何在成功后显示一个提示,用户刷新页时去掉提示 ?...CWebUser配置中的loginurl,在此处登陆后,可以通过redirect跳转到 复制代码 代码如下: returnurl(Yii::app()->request->redirect(Yii:...> 以上代码大部分是yii自动生成的,只要做少量修改即可 有时候会出现,搜索后页面为空的清况,原因可能是 layout/main.php中 echo $content外层无div,就是说main.php...']) && $_POST['ajax']==='post'){ echo CActiveForm::validate($post); Yii::app()->end(); } if(isset...> error一定要写上,要不不会触发ajax验证 ? 1 2 3 4 5 6 7 8 9 10 php echo $form->labelEx($post,'content');?> <?
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...php $form = ActiveForm::begin([ 'id' => 'form-id', 'enableAjaxValidation' => true,..._modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm...一般而言,上面的操作没有问题,但是总是会有特殊的人遇到特别的问题,问题突出,我们下面以一个案例进行说明: 有小伙伴遇到要验证的字段是unique类型,更新操作的时候,这可傻了眼了,怎么都处理不好了,我们下面给出一个针对字段
注意坑: 1.pjax必须包含使用到的所有js,也就是在页面中被应用到的pjax,都要被包含,否则js会在第一次执行pjax后失效 试图层 use yii\widgets\Pjax; php Pjax::begin(); ?> 内容代码 php Pjax::end(); ?> yii2框架自带的pjax,不需要额外的代码 pjax的一些配置 可以不显示刷新效果 案例: Pjax是JQuery的插件,结合ajax和Html5的pushState技术来实现异步刷新,每次通过a标签点击和form表单提交向服务器发送一个指定的请求之后,服务器都会返回需要更新的内容...Yii2 framework提供了一个Pjax widget帮助我们快速简洁的使用Pjax. 1. 引入Pjax php use yii\widgets\Pjax; ?...> 添加Pjax包裹住需要更新的内容部分 php Pjax::begin(); ?> 这部分内容需要更新 php Pjax::end(); ?
开始前准备过程 $ php composer.phar require kartik-v/yii2-widget-fileinput "@dev" or 在 composer.json 增加 "kartik-v.../config/bootstrap.php 增加 Yii::setAlias('@uploadPath', dirname(dirname(__DIR__)) ....php namespace backend\models\form; use Yii; use backend\models\GoodsPhoto; /** * 图片上传 * Class GoodsUploadForm...,三个参数,主要是第二个,有formData,jqXHR以及response参数,上传成功后返回的ajax数据可以在response获取 'pluginEvents...,三个参数,主要是第二个,有formData,jqXHR以及response参数,上传成功后返回的ajax数据可以在response获取 'pluginEvents
例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。...m160623_034801_create_test_table.php的内容增加后: 字段的类型,我只是写不同数据库中类似的字段定义。举个例子: mysql数据库中有text数据类型,用来存储大文本一类数据。...他会根据你选择的数据库与定义的抽象字段类型灵活改变。...\Migration::batchInsert(): 插入多行数据 yii\db\Migration::update(): 更新数据 yii\db\Migration::delete(): 删除数据 yii
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了...yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。...php $form = ActiveForm::begin([ 'id' => 'form-id', 'enableAjaxValidation' => true,..._modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm...[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]
实现的主要思路是把用户选择的语言保存到cookie中,每次用户访问页面前,将语言设置为cookie中的值。...php namespace common\widgets; use Yii; use yii\helpers\Html; use yii\helpers\Url; class LanguageSelector...Url::toRoute("ajax/lang") . "', data: { _lang : '" ....为菜单中的按钮绑定事件,当点击时触发ajax请求,ajax顺利返回后刷新页面。 4.添加处理ajax的controller。...php namespace frontend\controllers; use Yii; use yii\web\Controller; use common\components\SelectLanguageBehavior
为什么使用过滤器 通常情况下,过滤器将代码绑定到所有的操作上,也就是说,每一个操作的执行,都需要先或后执行过滤器,所以,可以用来执行权限检测、缓存处理等事情 在哪里使用过滤器 在控制器中,定义: public...文件过滤器通常使用Filter.php作为文件后缀,而文件中应该有一个和文件名一样的类 ?...,有ajax或者html或者纯文本 响应错误的方法是可以自己定义的 错误组件的实质类是yii\web\ErrorHandle其他的配置参数可以去该类中查看public属性 Session的使用 ?...结合yii\widgets\ActiveForm和models,你可以轻松实现安全的上传文件机制 创建模型 和普通的文本输入框一样,创建一个models里的属性,表示一个字段,然后完善验证规则即可 ?...表单模型.png 注意:要调用上传功能,需要打开 php_fileinfo 扩展 uploads目录应该在入口文件同级目录 多文件上传 Yii2支持多文件上传,只需要在上面的例子中加入一些小的修改即可
2.添加独立模块 yii可以在modules文件夹中添加自定义模块,添加完成后在web.php中的$config中的'modules'=[id=..class=...]设置模块的开关。...而且,像input这样的小部件,用ActiveForm类来展现,yii会对每个自动加入ajax验证,其一般的小部件都放在yii\widget\里,我们还可以在此文件夹里构建自定义的小部件类。...5.布局模式 yii会默认开启布局模式,其布局模板为view中的layout中的main.php,我们可以在veder/yiisoft/yii2/web/controller.php基础类中public...16.更新和删除 更新 //查找到一条结果 $res=$this->find()->where()->one(); //对结果修改 $res->attr='xxx'; //执行更新操作 $res->update...在ActiveForm中如果数据表中有了此字段,就不要再用public声明一个属性了,会导致attribute无法赋值。。。。(血泪)。
3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的。 4.浏览器提交表单后,发送的数据量大,造成网络的性能问题。 问题: 1.如何改进? 2.AJAX是什么?...后,页面才能恢复操作。...2.AJAX的概念: 1.AJAX = 异步 JavaScript 和 XML。 2.AJAX 是一种用于创建快速动态网页的技术。 3.通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。...等等) statusText 服务器返回的状态文本信息 ,HTTP状态码的相应文本(OK或Not Found(未找到)等等) 五、JQuery实现AJAX 下面的代码实现了当切换DropDownList...;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等 4.可能破坏浏览器后退按钮的正常行为; 5.一些手持设备(如手机、PAD等)自带的浏览器现在还不能很好的支持Ajax
->getHostInfo(); 获得URL问号后的参数字符串 Yii::$app->request->getQueryString() 返回服务器端口 Yii::$app->request...::$app->request->POST("username"); 判断请求类型(返回boolean) Yii::$app->request->isAjax // 判断是否为ajax请求 Yii...生成Html标签方法 生成一个超级链接 Html::a('链接的文本', $url); 通过Yii2的路由生成一个链接 Html::a('链接文本', Url::to(['/site/index...'], true)); Html::a('链接文本', Yii::$app->urlManager->createUrl(['/site/index'])); 生成一个图片链接 Html::img...("@runtime"); index.php所在目录 Yii::getAlias("@webroot"); 当前应用的根URL,主要用于前端。
盘点7款顶级 PHP Web 框架 2019年,PHP 代表超文本预处理器(Hypertext Pre-processor)是非常流行的 Web 服务端编程语言,小编今天就来和大家一起盘点7款顶级的 PHP...2、Yii2 Yii2是一个基于组件的高性能 PHP 框架,基本能提供PHP 框架中的所有特性,因其安全功能而受到网站开发人员的欢迎,并且具有极好的可扩展性,当程序员需要确保可扩展性并开发高效、易于维护的...Yii2 的优势:AJAX 支持;处理错误的有效工具;自定义默认设置;简单的第三方组件集成;强大的社区支持等。...此外,CakePHP还有其他优势:插件和组件的简易扩展;适当的类继承;零配置;现代框架;支持 AJAX;快速构建;内置验证等。...Phalcon PHP的优势:执行速度;低开销;资产管理 (Asset Management);独特的 C 语言扩展;通用自动装载机;开发人员的友好框架;顶级安全和缓存;构建性能 REST API 的理想选择
,别说你的程序将来没有移动端,早早的选择一个支持emoji的数据库会避免我们下载第三方库去解决报错问题。...,一般表内都会有记录生成时间和更新时间字段。...对于他们的更新请使用yii2内置的TimestampBehavior行为类,则字段数据的填充我们就无需操心了,如下代码 namespace app\models; use Yii; use yii\behaviors...生成时间 created_at 更新时间 updated_at 这样如上代码就完全够用了,无需指定字段。...); defined('YII_ENV') or define('YII_ENV', 'prod'); 报错页面 对于一个稳定的程序,报错不要紧,要紧的是报错后的处理,既然用户觉得有好又对开发人员有帮助
CSRF防御对象 因此我们要保护的是所有能引起数据变化的客户端请求,比如新建、更新和删除。...HEEP Referer 在http请求的时候,头部有一个叫做Referer的字段,该字段记录本次请求的来源地址。...这种方法适合上面批量添加token不方便的情况,一次性操作,不过局限性也比较大,XMLHttpRequest请求通常用在ajax方法中,并非所有请求都适合。...在CSRF这块,yii2框架采取了HTTP头部和参数token并行的方式,针对于每个请求,在beforeAction都会做一次判断,如下 // vendor/yiisoft/yii2/web/Controller.php...() 该方法存在于 vendor/yiisoft/yii2/web/Request.php 中,我们看一看它。
领取专属 10元无门槛券
手把手带您无忧上云