; Controller 控制器,可在action内直接用$this调用。...("@webroot").'...; 运行时存放文件路径 Yii::getAlias("@runtime"); index.php所在目录 Yii::getAlias("@webroot"); 当前应用的根URL,..."); 高级版-后台应用所在位置 Yii::getAlias("@backend"); 命令行库所在位置 Yii::getAlias("@console"); Query Builder...204: 该请求被成功处理,响应不包含正文内容 (类似 DELETE 请求)。 304: 资源没有被修改。可以使用缓存的版本。 400: 错误的请求。
/vendor/yiisoft/yii2/Yii.php'; //引用 bootstrap.php 定义一些别名等 require __DIR__ . '/../.....先看 Yii.php 内的逻辑 /** * Yii::autoload 内执行过程 * 1、先查看类是否在 Yii::$classMap 中存在,存在直接调用 getAlias 生成类文件物理地址...* 2、如果 Yii::$classMap 中不存在,将命名空间转为实际路径调用 getAlias 生成类文件物理地址 */ spl_autoload_register(['Yii', 'autoload...'], true, true); //yii2 核心类的类名和物理文件地址映射的 hash 数组 Yii::$classMap = require __DIR__ ....createObject 实现调用 Container 依赖注入容器实例化对象 */ $request = $this->getRequest(); //定义别名 Yii::setAlias('@webroot
yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈 Yii2安装 两种安装方式,composer或者下载zip包 使用composer安装初始化yii2项目(推荐)...windows下,如果本机还没有安装composer,我的做法是是直接下载composer.phar包 假定你的工作目录是 workspace,将下载的composer.phar放在workspace...下 命令行进入workspace 执行如下命令,初始化一个基于yii2的应用 php composer.phar create-project --prefer-dist --stability=dev...配置的webroot目录,提供外部访问 app/ app根目录 assets/ assets管理定义 commands/...命令行工具(controller) config/ 应用程序配置 controllers/ web controller目录(控制器) views/
最近在使用yii2开发一个表单页面的时候,有多图上传的需求,稍微找了找这方面的组件,基本都安利fileInput这个组件,于是就尝试着使用这个库来完成后端表单页面的多图上传功能。...model' => $model, 'attribute' => 'attachment_1[]', 'options' => ['multiple' => true] ]); // 不绑定...> 我们在控制器配置好图片浏览的配置,传入进来。...file_exists(Yii::getAlias('@backend') . '/web' ....上传成功后你可以刷新当前页面,因为一开始我们就在controller中实现了图片的预览工作,所以理应会展示我们已经上传的两张图片。
本教程为整个数据库表进行创建迁移,弥补以前未做的工作,且仅适合于Migrations(2.0.8)版本用户及以上。...以上步骤都完成以后,我们就开始新建console命令啦~ 作者创建的控制器是:TimerController.php,如果你们有控制器可以直接使用,再新建一个Model文件,并且将引入Model关键词...$Migrate = new MigrationDb(); // 获取迁移目录路径 console/migrations/ $dirName = Yii::getAlias...到了最后紧张又刺激的时刻了,我们的工作已经完成,就差运行命令调试。 我们先将所有表备份一份并导出到本地(以防万一,我不舍得你们跑路啊),确保所有表都在的时候,我们就是用命令执行console任务。...(先进入到你的程序根目录,有yii.bat的那里) windows的DOC命令:/你的文件夹路径/yii timer(控制器名)/migrationdb(方法名)。 Linux命令:老子不会。
首先我们介绍一下Controller类的render()方法的执行流程,需要查看vendor\yiisoft\yii2\base\Contorller.php文件中的render()方法源代码。...开始应用级布局 在一个应用中多个控制器使用一个布局文件,那么可以在应用级配置文件config/web.php中设置yii/base/Application的$layout属性,代码如下: $config...\base\Module类,在Module类中定义了getViewPath()和setViewPath()方法,来获取和设置视图文件路径,代码如下所示: //所在文件路径vendor\yiisoft\yii2...\base\Application.php abstract class Application extends Module { } //所在文件路径vendor\yiisoft\yii2\base...this->_viewPath; } public function setViewPath($path) { $this->_viewPath = Yii::getAlias
像这种类似的第三方很多,但是由于各个平台的sdk的代码规范各有特色,对于新手,集成到我们的yii2中,似乎就是一件不那么容易实现的操作。其实很容易,我一说你就懂。...今天我们将分别以支付宝、阿里大于和一个支持psr-4规范的Mailer类库为例,来介绍下yii2集成第三方代码的4种方式。...以这个支持psr-4的Mailer为例,你只需要用composer require命令安装,安装好了就可以直接在代码中使用了(如果需要,点击Mailer的链接,使用规则参考github上面的说明)。...我们还以上面的Mailer为例,该类的命名方式符合psr-4标准,因此我们可以使用yii2自带的加载器来加载。.../vendor/alipay/alipay.config.php"); require_once(Yii::getAlias('@frontend')."
yii命令行,它会为你的开发带来无尽的遍历。...模型的重要性 很多yii2的初学者喜欢将大量逻辑写到控制器的动作(action)中,这是不对的,我们的重点应该在模型中,而控制器仅仅是做输入输出。 我们拿关联举个例子,下面的这段代码是不好的。...将验证的工作交给模型的rule和场景吧。一切。...php try { echo \app\components\WechatLangSideMenu::widget(); }catch(\Exception $e){ // 可以不处理也可以写你自己的错误处理...是父类还是行为 其实我是不排斥任何一种的,各有利弊吧,父类使用简单但是增加了耦合,行为耦合度低但是配置比直接父类复杂些。
在网上搜了很多yii2图片上传插件,感觉这个和bootstrap融合的很好,比较能满足需求,故推荐给大家。 在使用过程中踩过不少坑,以下是具体使用说明。...*/ public function upload() { if ($this->validate()) { $path = Yii::getAlias...public */ private function parseImageUrl($filePath) { if (strpos($filePath, Yii::getAlias...== false) { return str_replace(Yii::getAlias('@uploadPath'), '', $filePath); } else...> 对应控制器方法异步处理上传图片 public function actionAsyncphoto() {
在modules/admin下创建assets文件夹来包含资源文件 在调用AssetManager类的publish()方法,这个方法首先会在应用的asset文件夹下创建一个随机不冲突的文件夹如4ebd21cf...提示 @yii: BashYii.php 文件所在的目录(也被成为框架安装目录)\vendor\yiisoft\yii2 @app:当前运行的应用所在目录。...webroot:指向包含入口文件的目录/web。 vendor: 指定包含yii\base\Application:vendorPath。默认@app/vendor。...>/images/1.jpg" style="width: 50%;height: 50%"> 说明:“this”表示View实例对象,在视图中的“this->context”表示所在控制器实例对象,“...modules”表示该控制器所属的模块,这里表示modules/admin目录下的模块类Module的实例对象,该对象调用不存在的属性“assetUrl”的时候,就会通过魔术方法_get(),调用moduels
前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等。...URL 更多高级的用法参见官方文档,这篇文章仅仅介绍 Yii2 生成 URL 的几种方式。 Yii2 默认的 URL 链接格式 Yii2 默认的 URL 链接格式是指为开启 URL 美化时的格式。...r=kernel/article/view&id=10,以下说明 URL 助手类 Url::to() 是如何工作的(不推荐): // 创建当前 URL // 显示:/?...r=kernel/article/view&id=10,以下说明 URL 助手类 Url::toRoute() 方法是如何工作的(推荐): // 创建当前路由(仅继承参数r的值) // 显示:/index.php...r=kernel/article/view&id=10,以下说明 URL 助手类 Url::current() 方法是如何工作的(推荐): // 创建当前 URL(包括路由和参数) // 显示:/?
但是从目前对tp5一周的使用时间来看,tp5相对于yii2来说,确实是弱爆了。 1、Yii2所有的操作都是对象操作。所有的对象都继承Yii中的Object对象。TP中,有对象也有函数。...2、Yii2架构组织明确,同一类的对象必定有一个父类,在父类中定义相同的方法。在TP中,同一类对象没有什么继承关系,有的完全没有任何关系,内部提供的一些方法也不同。...类中定义,同时通过抽象方法的形式定义控制器必须实现的方法。...在TP5中,普通控制器提供一个tink\Controller对象,同时,框架也允许在应用中的控制器可以不继承think\Controller。...同样rest请求中,TP5中提供一个think\Controller\Rest的类做为控制器。
一 ,检测环境: 首先我们切换到项目根目录,yii2正常安装的话有一个commands文件夹,里面有一个示例文件HelloController.php <?...php namespace appcommands; use yiiconsoleController; class HelloController ex/【php教程_linux常用命令_网络运维技术..."n"; } } 切到项目根目录,命令行输出 php yii hello,输出hello world 说明环境正常 二,书写代码: 可以在commands文件夹新建控制器文件,继承yiiconsoleController...: 在linux环境下,crontab -l显示定时任务,crontab -e编辑定时任务 2基本语法 基本格式 : *command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用或者 /...,后面加上 php yii + 项目根路径 + 路由(控制器名/方法名)即可 以上这篇yii2 commands模式以及配置crontab定时任务的方法就是小编分享给大家的全部内容了,希望能给大家一个参考
yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式。...刚开始以为YII2中肯定有这样的设置,然后就去google了下,发现都说不行,自己去看了下,果然,框架里面直接是写死的:(源码)\vendor\yiisoft\yii2\base\Controller.php...这点有点low,不过问题倒不大,这个代码很容易理解,我们发现,其实如果在这个源码的基础上再加上一个else就可以搞定,但是还是不建议直接改源码。...由于我们的项目用的事yii2的advanced版本,并且里面有多个项目,还要保证其他项目使用正常(也就是个别的控制器才需要使用驼峰命名的方式访问),这也容易: 我们可以写个components处理:\common...ok ,这就可以支持使用驼峰形式访问了,当然这个的形式很多,也可以写成一个控制器,然后其它控制器继承这个控制器就行了,但是原理是一样的 如何使用?
本系列文章之所以选用yii2构建一个完整的应用,基于我最近在深入了解yii2,便将自己对于yii2的理解表达出来,希望能帮助那些想了解yii2的同学。如果你对yii2感兴趣,欢迎入坑。...如果你对yii2不感兴趣,更希望你能抽空了解下,给yii2一个机会,让她展现魅力,我相信,不喜欢用yii2的人,绝大部分是使用的姿势不对。好比普通人拿屠龙宝刀,只能用于切西瓜,还嫌其笨重。...yii2享誉盛久,绝非浪得虚名。 那么,现在开始我们的yii2之旅吧, 少年... ? 加油,少年 安装yii2 现代化的php框架都支持用composer安装,yii2自然也不例外。...以下是我的项目仓库链接, 关于yii2的实战系列教程代码都会提交到此项目,欢迎star 配置服务 yii2有两套模板,一个是基本模板,一个是高级模板。...小结 本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...
本文讨论通过composer工具安装Yii2框架并优化Vendor过程中遇到的问题,约定读者对composer基本原理有一定了解,并且有安装Yii2框架的实际经验。...Yii2的compposer包进行精简。...其实在install的时候,假如发现composer.lock版本和目前vendor目录下的代码版本是一致的,则Composer会什么也不做,composer.lock的目的就是让你安心在目前这个版本下工作...,而不获取最新版本的包. composer update composer.lock文件中的包版本会被更新,composer.json记录的包都会被更新到最新。...这个命令要谨慎使用。 如果组件已经使用composer引用到项目中,成为公共组件,需要谨慎使用composer命令,当然需要专人负责维护,不设置共享操作权限。
以上是关于小程序登录的前后台逻辑,如果你使用yii2类框架,很多都内置了,并不复杂。 但是这里还有几个问题 小程序端何时进行登录逻辑? 发起请求时access_token过期了如何处理?...客服消息 在小程序开发中,客服消息的重要性不言而喻,它除了作为客服服务外,还作为小程序到微信浏览器的一个渠道,比如本次在「宝宝爱识图」的开发中,我用它来实现将收款微信号到用户的推送工作,这主要是解决在ios...服务器端 接下来总结下服务器端,我使用yii2的restful组件作为接口支持,关于restful的基本功能请参考yii2官方文档或我之前录制的课程《Yii2的RESTful讲解》,在这里分享我认为关键的点...让yii2能解析json的请求内容 默认情况下yii2并不能识别请求中的json格式,而我们小程序在发起请求时喜欢用它,因此我们要对yii2进行一下配置。...在yii2的restful中的用户认证使用了行为机制,我们来看下流程代码 // 在需要授权的控制器内 class CardController extends ActiveController {
> yii2框架自带的pjax,不需要额外的代码 pjax的一些配置 false]); ?...Yii2 framework提供了一个Pjax widget帮助我们快速简洁的使用Pjax. 1. 引入Pjax <?php use yii\widgets\Pjax; ?...Yii2 Pjax Examples Refresh 本例是一个简单的点击超链接来实现刷新时间,通过Pjax widget实现异步刷新。这里有一个在线的示例:Demo 控制器中代码为: public function actionDate() { return $this->render('time-date', [ 'response'...Pjax::begin(['id' => 'admin-crud-id', 'timeout' => false]);这样不设置超时,或者给个比较大的值应该可以解决问题。
本文讨论的问题集中在使用Compoer安装YII2框架及更新组件包,升级YII2主版本时遇到的一些问题。 ? 前置条件 首先使用Composer包工具的需要满足以下两个前提,不区分操作系统。...composer.phar 将composer 设置为全局可用 mv composer.phar /usr/local/bin/composer 安装Composer Asset插件 安装完Composer,运行下面的命令来安装...查阅网络很多资料, Asset插件相关的问题主要集中在【安装Composer Asset插件老是失败】,解决方案都是给出执行具体的命令,安装这个插件的关键在于 确定当时fxp/composer-asset-plugin...查看composer-asset-plugin最新版本 https://packagist.org/packages/fxp/composer-asset-plugin 执行如下命令安装 composer...更新YII2 框架至2.0.14 遇到问题 Problem 1 - yiisoft/yii2 2.0.15.1 requires bower-asset/inputmask ~3.2.2 | ~
Yii2 使用 RESTful?...其实 Yii2 框架本身就对 RESTful 是友好支持的,具体可以看官方文档(http://www.yiichina.com/doc/guide/2.0/rest-quick-start),或者去看源码...,都是可以的 注意: 我们使用resTful的同时,需要借助于测试工具进行地址访问,例如: 谷歌的PostMAN,火狐的HttpRequester工具来访问 创建一个控制器 我的工作目录如图所示 (首先...下面以v2中的文件为例: 创建一个控制器类 api\modules\v2\UserController 如下, namespace api\modules\v2\controllers; use...这个特殊的URL规则类将会建立一整套子URL规则来支持路由和URL创建的指定的控制器。