控制器:articleController.php 方法,actionCreate() 删除 postman: DELETE 你的虚拟域名/articles/某个id的值 控制器怎么写呢?.../articles/某个id的值 控制器怎么写呢?.../articles/某个id的值 控制器怎么写呢?...控制器:articleController.php 方法,actionIndex() 查询一个: postman GET 你的虚拟域名/articles/某个id的值 控制器怎么写呢?...控制器:articleController.php 方法,actionView($id),查询那个的详细信息呀
前段时间做项目,遇到一个问题,用yii2的AR连表查询数据的时候,理应该查出来更多的数据,但是实际得到的只有部分数据: 例如,有这么一个查询: $query = OperaHotelRoom::find...,打出的,写成原生sql: SELECT `a`....`HOTEL_ID` = 197 原生sql查到的结果: ? 但是AR查到的结果(只有13条): ?...自己观察下数据,就发现,将sql查出来的数据group by ID(ID是表的主键)后就得到了上面的13条记录,即,应AR连表查询的时候,会出现主键覆盖情况....解决方案: 在select的时候,将主键select出来,并且起个新的字段名称,再查,就会发现,所有的数据都有了 ?
1、Cookie Yii2的Cookie主要是通过yii\web\Request和yii\web\Response进行操作的 ,通过\Yii::$app->response->getCookies()...php //第一种方法 $cookie = new \yii\web\Cookie(); $cookie -> name = 'smister'; //cookie的名称 $cookie...-> expire = time() + 3600; //存活的时间 $cookie -> httpOnly = true; //无法通过js读取cookie $cookie -> value...> 4) 注意 对Cookie进行增删改时调用的response , 对Cookie读取时使用的是Request 2、Session Yii2的Session比较简单 ,直接通过\Yii::$app->...符号,会被解析成“_”,导致具有以上符号的key获取不到Cookie的bug B.区分Yii2中 Yii::$app->request->cookies 和 Yii::$app->response->cookies
本文从 PHP 语言的 YII2 框架说起,简单谈一些技术的演变和发展脉络。 YII2 这个框架是 PHP 语言生态下的一款 Web 应用框架。...PHP 官方的定义是基于轻型的 Web 应用,最典型的应用是 MVC。...YII2 初来乍到 在 2013 年,2014 年 YII2 刚刚发布的年份,YII2 被大家追逐的原因大概是面向对象数据,包加载的扩展属性,自带 Gii 自动化生成工具,清爽的 View 界面和工具包...最近几年,前端技术演进迅猛,Web 开发都在使用前后端分离,分离大部分内容是数据的业务控制和界面的显示。 View 逐渐被前端框架,如 Vue 取代,YII2 也暴露出来它的劣势。...看一看 YII2 官方文档[2] 列出来的 YII2 关键组成,基本上很多已经退出常见的使用场景。 找到了一个介绍 YII2 微框架,为服务接口而设计的 使用 Yii 作为微框架[3], ?
border:0; background: transparent; } button::after { border:0; } 尤其是对 button::after 要进行设置,否则按钮的边框是无法去掉的...服务器端 接下来总结下服务器端,我使用yii2的restful组件作为接口支持,关于restful的基本功能请参考yii2官方文档或我之前录制的课程《Yii2的RESTful讲解》,在这里分享我认为关键的点...让yii2能解析json的请求内容 默认情况下yii2并不能识别请求中的json格式,而我们小程序在发起请求时喜欢用它,因此我们要对yii2进行一下配置。.../json' => 'yii\web\JsonParser', ], ], 对,在web.php中对组件request增加内容解析yii\web\JsonParser。...用户认证 小程序的登录需要服务端的用户认证配合,当然我使用yii2框架,内置的restful已经支持了,如果你的系统不支持用户认证,可以自行建立access_token的生成机制,具体可以参考腾讯开放的小程序服务端框架
过滤器位置.png 定义过滤器 在Yii2中,自定义过滤器,需要继承 yii\base\ActionFilter 类并覆盖 yii\base\ActionFilter::beforeAction() 和...,有ajax或者html或者纯文本 响应错误的方法是可以自己定义的 错误组件的实质类是yii\web\ErrorHandle其他的配置参数可以去该类中查看public属性 Session的使用 ?...')); //获取的是对象 var_dump($getCookieObj['tel']); 文件上传 在Yii里上传文件通常使用yii\web\UploadedFile类, 它把每个上传的文件封装成 UploadedFile...验证码 Yii2中的验证码是通过扩展的操作来实现的,叫做 yii\captcha\CaptchaAction 只需要将它绑定到actions中就可以直接访问,无需任何更改: ?...,在Yii2中,不需要自己去写验证,直接在表单模型的 rules 中调用 captcha 验证就可以了 ['verifyCode','captcha'], 数据分页 Yii2也提供了类似于TP的数据分页类
php class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web...center.css', ]; public $js = [ 'js/common.js' ]; public $depends = [ 'yii...\web\JqueryAsset', 'light\assets\LayerAsset', ]; } 在 view 中使用 asset 进行注册 registerJsFile('/js/product_attr.js', ['depends'=>['yii\web\JqueryAsset']]); ?...> // 注册CSS文件,设置依赖优先关系,如下,AppAsset的css文件会优先加载。 <?
这篇文章主要来看看在Yii2之中的MVC,当然,最核心的思想还是跟Yii1.1一样的,但是我今天是想来看看在Yii2里的MVC跟Yii1.1有什么不同,或者应该直接说,Yii2的改进在哪里,以至于使得官方敢向着最好的...Yii2的Active Record。...\web\Controller?...没错,Yii2中已充分开始使用PHP命名空间,当初在Yii1.1的时候一直听说Yii2会使用更高级的PHP特性来完全重写,果然啊,点个赞。...写在最后 正如你在这篇文章看到的一样,在Yii2中几乎所有的MVC组件变化都使得Yii2更好用了,我相信这会带给开发者更好的的开发体验,毕竟Yii2 中看到了一丝丝优雅的样子!
Composer 这个是做yii2开发的基石,除非没有办法使用,否则请不要放弃,除了更容易的安装yii2及第三方扩展外,能使用Composer代表着你的服务器最少能运行起来php-cli,那么你就可以使用...// config/web.php 'language'=>'zh-CN' 静态缓存问题 在用yii2的时候,我们习惯将静态文件(图片、css文件、js文件等)放到资源类中管理,但是可能存在浏览器缓存问题...// config/web.php 'assetManager'=>[ 'appendTimestamp' => true ], 配置DB 虽然yii2对数据库,尤其是对mysql是很友好的,但是我们还是应该使用稳定高一点的版本...bug,这需要你在一个yii2生命周期内持续的观察某些变量的值及赋值路径,具体配置可以参考我之前的课程, 用xdebug支持yii2调试之 - PhpStorm配置篇 当然,yii2自己的debug扩展也极其有用...另外在做迁移脚本的时候,如果你的表有前缀,那么在脚本里的写法如下 {{%user}}// discuz_user 时间问题 使用yii2开发mysql类web应用的时候,数据表的时间类字段我们喜欢用时间戳
Laravel 提供了几个特定的软件包,使 Web 开发成为一项功能强大的任务。...2、Yii2 Yii2是一个基于组件的高性能 PHP 框架,基本能提供PHP 框架中的所有特性,因其安全功能而受到网站开发人员的欢迎,并且具有极好的可扩展性,当程序员需要确保可扩展性并开发高效、易于维护的...这个功能强大且易于使用的框架适用于各种 Web 应用。 Yii2 的优势:AJAX 支持;处理错误的有效工具;自定义默认设置;简单的第三方组件集成;强大的社区支持等。...使用 CakePHP 部署 Web 网站非常容易,只需要一个 Web 服务器和 CakePHP 框架的副本。...Phalcon PHP的优势:执行速度;低开销;资产管理 (Asset Management);独特的 C 语言扩展;通用自动装载机;开发人员的友好框架;顶级安全和缓存;构建性能 REST API 的理想选择
本系列文章之所以选用yii2构建一个完整的应用,基于我最近在深入了解yii2,便将自己对于yii2的理解表达出来,希望能帮助那些想了解yii2的同学。如果你对yii2感兴趣,欢迎入坑。...yii2享誉盛久,绝非浪得虚名。 那么,现在开始我们的yii2之旅吧, 少年... ? 加油,少年 安装yii2 现代化的php框架都支持用composer安装,yii2自然也不例外。...以下是我的项目仓库链接, 关于yii2的实战系列教程代码都会提交到此项目,欢迎star 配置服务 yii2有两套模板,一个是基本模板,一个是高级模板。.../frontend/web/; # 你的项目路径 index index.php; access_log /path/to/yii-application...小结 本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...
yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈 Yii2安装 两种安装方式,composer或者下载zip包 使用composer安装初始化yii2项目(推荐)...下 命令行进入workspace 执行如下命令,初始化一个基于yii2的应用 php composer.phar create-project --prefer-dist --stability=dev...官方地址 源码安装 源码包地址 yii2-beta 下载源码包解压后即yii2的框架源文件,然后根据自己的实际情况构建目录结构,进行开发 项目初始化完成以后,配置yii2的配置文件,配置文件一般放在...app/config目录下,当然这个路径会根据个人习惯而不同] 我个人推荐的yii2框架目录结构(使用composer 创建项目的默认目录结构和此不同) composer.json 定义项目中的...composer依赖包,内容格式可使用composer init生成 vendor/ 第三方包依赖目录,包括yii2框架 web/ nginx/apache
凡是我yii2学习社群的成员都知道,我不止一次给大家说构造表单100%使用yii2的ActiveForm来实现,这除了能和AR更好结合外就是自动生成csrf隐藏域,一个非常安全的举措。...Yii2 首先要说的是每种CSRF防范措施都有其弊端,无论你的防范多么严密,黑客拥有更多的攻击手段,因此在重要逻辑上(必须写入和删除)必须非常小心,接下来我们把yii2框架在csrf上的部署说一下。...在CSRF这块,yii2框架采取了HTTP头部和参数token并行的方式,针对于每个请求,在beforeAction都会做一次判断,如下 // vendor/yiisoft/yii2/web/Controller.php...() 该方法存在于 vendor/yiisoft/yii2/web/Request.php 中,我们看一看它。...以上是整体的思路,为了让你看的更清晰,我画一个图并增加一些名词解释。 [tu.png] 以上是yii2的csrf策略部署,当然我还是推荐你使用 xdebug等调试工具 一步一步看看这个过程。
Yii2 中的CSRF配置 Yii2 默认是启用CSRF令牌验证 配置在main.php中: 'components' => [ 'request' => [ /...使用Yii挂件生成html 这样会自动生成带有隐藏表单的_csrf Yii::$app->request->csrfToken; ?...>" name="_csrf" > 三 提交POST提示“您提交的数据无法验证” 使用原生or Yii挂件生成html带有_csrf 表单提交仍然提示“您提交的数据无法验证” 表单html如下: Yii自动生成,不存在字符串不匹配 后来找到问题: render的时候使用了exit, 应使用return *注: render 时也不能用echo 或 die() 解决办法: return
说干咱就干,老沙灰常高兴的开始yii2程序的restful配置过程。...alt yii2框架内置是支持restful规范的,按照yii2的规则做我们可以轻松实现比如数据表数据的获取、插入、更新、删除等基础操作以及登录验证等功能。...urlManager 如果要实现上面的url样子,我们必须进行url美化,这需要web服务器的支持(apache&nginx如何支持url重写可以参考 速查表),单单这样还不够,yii2提供了restful...在我们设置了urlManager后,yii2就变得智商满满了,当过来一个 GET xgh.nai8.me/xcx/albums 请求后,yii2知道这是一个要获取资源结果集的请求,则会去调用xcx模块下的...album控制器的actionIndex,以此类推yii2提供了很多个内置的action识别,具体见下图 alt 当然具体如何实现的你可以参考 yii\rest\UrlRule.php 类及yii2的
Yii2 使用 RESTful?...其实 Yii2 框架本身就对 RESTful 是友好支持的,具体可以看官方文档(http://www.yiichina.com/doc/guide/2.0/rest-quick-start),或者去看源码...你所创建的 API 包括: 相比于URL管理的Web应用程序,上述主要的新东西是通过RESTful API请求yii\rest\UrlRule。...: 删除用户123 但是如果你要是不想用他的某些方法,我们可以通过下面的方法来自己覆盖对应的方法 例如: public function actions() { $actions = parent...//unset($actions['update']); //unset($actions['delete']); return $actions; } //覆盖父类的
测试框架版本说明 测试yii2版本 77103@DESKTOP-C2JB47R MINGW64 /e/dev/basic $ ....php namespace app\controllers; use yii\web\Controller; use Yii; class TestController extends Controller...} } //结果:string(28) "{"name":"ball","age":"male"}" 解决 在yii2使用memcache前根据文档配置好相应的参数,在使用memcache(非memcached...所以特意去看了看底层代码,引用的memcache类为Yii2自带的yii\caching\MemCache,Yii::$app->cache->set('key','value');这句代码会自动调用memcache..., 还有如果哪位小伙伴有精神可以告诉下yii2开发团队, 下次yii升级的时候就可以修复这个bug了,暂时没修复时小伙伴们就照我上面说的改一下就可以用了。
在web应用的开发模式下,我们不可避免的总会遇到对第三方api的集成。比如支付宝支付和微信支付的sdk,再或者是各种短信api比如阿里大于的sdk集成等等等等。...像这种类似的第三方很多,但是由于各个平台的sdk的代码规范各有特色,对于新手,集成到我们的yii2中,似乎就是一件不那么容易实现的操作。其实很容易,我一说你就懂。...今天我们将分别以支付宝、阿里大于和一个支持psr-4规范的Mailer类库为例,来介绍下yii2集成第三方代码的4种方式。...我们还以上面的Mailer为例,该类的命名方式符合psr-4标准,因此我们可以使用yii2自带的加载器来加载。...首先我们手动从github上下载,然后把下载下来的压缩包解压缩后放到你的vendor/bailangzhan/ 目录下,并重命名为 yii2-swiftmailer,现在vendor/bailangzhan
"keywords": ["yii2", "framework", "basic", "project template"], "homepage": "http://www.yiiframework.com...", "license": "BSD-3-Clause", "support": { "issues": "https://github.com/yiisoft/yii2...", "source": "https://github.com/yiisoft/yii2" }, "minimum-stability": "stable",..."require": { "php": ">=5.4.0", "yiisoft/yii2": "~2.0.14", "yiisoft/yii2-bootstrap...": [ { "runtime": "0777", "web/assets": "0777
安装好YII2 后出现 例如以下图错误提示: 解决方法例如以下: 打开安装好的YII2项目文件夹(YII2安装方法參见 摘取天上星 的博文:http://blog.csdn.net/zqtsx/article.../details/39344913) 打开YII2项目文件夹里的 composer.json 文件 (例如以下图) 在composer.json 文件中加入 例如以下(extra括号中的部分)代码:...改动后的composer.json文件 大致例如以下(extra部分为我们加入的新增代码): { "name": "yiisoft/yii2-app-advanced", "description...": "Yii 2 Advanced Application Template", "keywords": ["yii2", "framework", "advanced", "application...: 到这里 更新也就结束了, 再次打开浏览器输入 项目地址 http://127.0.0.2/frontend/web/。