CURD-Gii.jpg 之前在介绍Yii框架的时候就说过 Yii 支持 gii 功能, gii 去自动生成 Web 站点常用功能的代码,也就是我们经常说的 CURD 操作,增删改查。...使用 gii 生成代码也是非常的简单,Gii 被设计成高度可定制和可扩展的代码生成工具, 使用它可以大幅提高应用开发速度 gii 是 Yii 中的一个模块。...,看你们实际情况吧,意思就是只有开启了才能使用 这里也不多介绍gii的使用了,如果不了解的话可以去看一下Yii中文网用 Gii 生成代码的文档 本篇文章主要是说访问 gii 页面404的解决方法,为啥呢...gii和debug文件夹的 看了一下网上找的答案,都是一些什么URL重写以后的错误,还有安全原因拒绝的,可以先排除一下 urlManager配置了后缀为 .html,在使用 /gii 访问时,由于没有后缀...,YII2框架在解析URL时,就直接返回404了,所以在配置了 suffix 属性的时候,就需要加上.html来访问,或者不配置’suffix’属性即可 如果你通过本机以外的机器访问 gii,请求会被出于安全原因拒绝
#error_page 404 /404.html; # deny accessing php files for the /assets directory location...deny all; } } 重启nginx sudo service nginx reload sudo service nginx restart 查看错误日志...=InnoDB DEFAULT CHARSET=utf8; 注册报错: Setting unknown property: common\models\User::password_hash gii生成代码...设置权限 sudo chmod -R 0777 backend CURD 生成成功 查看文件目录 访问http://backend.test/index.php?...也欢迎园子的大大们指正错误,共同进步。或者直接私信我
跳转到 复制代码 代码如下: returnurl(Yii::app()->request->redirect(Yii::app()->user->returnUrl);) 当强制显示登陆表单,比如判断用户是...在beginCache是需要手工指定一个id,Variation的作有就是自动给生成这个id 在布署模式的时候,有错误不会有stack样的提示,会显示一个errorxxx的错误 如何在程序有错的时候跳到指定的...ob_getconent生成一段不显示的内容,可以能过CController::clips访问,如 复制代码 代码如下: $this->beginWidget('CClipWidget',array('...> 以上代码大部分是yii自动生成的,只要做少量修改即可 有时候会出现,搜索后页面为空的清况,原因可能是 layout/main.php中 echo $content外层无div,就是说main.php...array('win'=>'application..behavior.Window') 一对多,多对多的关联时最后的参数 together说明 如果为false,分开查多个语句 如果为true,强制生成一个语句
config/main.php新增: 'defaultRoute' => 'index', 此时,再访问主页,会报404错误: ?...404报错 因为我们指定默认控制器为index,却没有创建相应的文件,接下来我们用yii的gii组件生成控制器文件。...gii生成控制器 可以看到,程序自动为我们生成了frontend/controllers/IndexController.php和frontend/views/index/index.php两个文件 此时...gii help gii是yii的代码自动生成工具,可以在web页面生成,也可以在命令行生成,程序员大多更偏爱于命令行。...现在不太清楚用法,也没关系,先了解有这个功能,后续会单独讲解gii 构建人物列表页面 控制器构建数据 在Index控制器中,我们要构建一个简易的人物列表,效果如下: 控制器将人物列表数据传送给视图文件
varnish开启之后过一段时间就出现503错误,直接访问后端OK,前端ping后端OK,原因是varnish判断后端已挂掉,拒绝请求。...框架,url重写 请求被转发到后端的 "/"上,经过yii路由,最后的请求地址为/site/index,也就是请求SiteController中的actionIndex,在做项目的时候还没有加入SiteController...,所以后端给前端404,与.expected_response = 200不一致,当varnish重试几次以后就会判断后端为挂了。...所以建议在后端加一个varnish专用的检测文件,如 .probe= { .url = "/varnishTest"; .timeout = 1s; .interval =...为了防止用户直接访问到varnish专用的测试地址,可以在varnish请求中加入set req.http.FromVarnish = "yes";,也就是在header中加入一个变量,在PHP中检测
yii2使用nginx部署上线时访问非index.php页面显示404错误【遇到的坑】 如:访问首页(index.php)正常 ? 访问其他页面(非index.php)显示404错误 ?
调试 urlManager 的时候要小心,他会将生成好的路由写入缓存(默认是文件缓存),有些更改可能不会立马生效 'urlManager' => [ //用于表明 urlManager 是否启用...但实际使用中,特别是产品环境,一般都会启用 'enablePrettyUrl' => true, //是否启用严格解析,如启用严格解析,要求当前请求应至少匹配1个路由规则,否则认为是无效路由...json 和 xml //还可以增加 yii\web\Response 类内置的响应格式,或者自己增加响应格式 ], ] ], 10、配置文件中,components...配置 response,返回格式 'response' => [ 'class' => 'yii\web\Response', //设置 api 返回格式,错误码不在 header...1520490595" } } 命令: curl -s -H Accept:application/json http://local.rest.com/v1/goods11 返回: {"code":404
(*) AS total FROM `user` WHERE id = 1")->queryScalar(); 获取某一列(放到一位数组中) Yii::$app->db->createCommand...status code 404. yii\web\ServerErrorHttpException: status code 500. yii\web\TooManyRequestsHttpException...生成Html标签方法 生成一个超级链接 Html::a('链接的文本', $url); 通过Yii2的路由生成一个链接 Html::a('链接文本', Url::to(['/site/index...404: 所请求的资源不存在。 405: 不被允许的方法。 请检查 Allow header 允许的HTTP方法。 415: 不支持的媒体类型。 所请求的内容类型或版本号是无效的。...请检查响应体内详细的错误消息。 429: 请求过多。 由于限速请求被拒绝。 500: 内部服务器错误。 这可能是由于内部程序错误引起的。
模型-视图-控制器(MVC)设计模式:Yii在WEB编程中采用这一成熟的技术从而可以更好的将逻辑层和表现层分开。...数据库访问对象(DAO)和Active Record:Yii允许开发者模型数据库中的数据对象,从而减少他们在写很长和重复的SQL语句上的精力。...Web 2.0部件:由jQuery的支持,YII配备了一套Web 2.0的部件,如自动完成输入字段,TreeView等等。 身份验证和授权:Yii具有内置的身份验证支持。...错误处理和日志记录:错误的处理很好的呈现出来,日志信息可以分类,过滤并分配到不同的位置。 安全:Yii配备了许多安全的措施,以帮助安全的Web应用程序,以防止网络攻击。...符合XHTML:Yii的组件和命令行工具生成的代码符合XHTML标准。 自动代码生成:Yii提供了可以自动生成的代码的工具,根据你的需要,例如生成一个程序骨架,CRUD应用等等。
通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。...该版本重要的更新如下: 自定义URL规则类 为了处理更复杂的网址,可以编写自定义URL规则类和并将这些类插入到CUrlManager中。...改进的类自动加载器 Yii提供了类自动加载器,它可以允许在自动加载器链中第三方加载器在它的前面或后面。此前,Yii的自动加载器必须在自动加载器链的末端,因此它被Yii的核心类和外部类触发。...现在Yii的日志记录机制可以支持“实时”记录。 生成消息文件 当使用的yiic消息命令生成消息文件时,你是否经常要删除旧的邮件文件,并替换为新生成的文件呢?...您现在可以强制命令使用新生成的文件覆盖旧文件。 创建控制台应用程序中的URL 我们经常使用CUrlManager来创建Web应用程序中通用网址。有时,控制台应用程序也有类似的需求。
yii\base\Application中的所有的属性和方法交给Yii::$app->loadedModules数组中 $this->state = self::STATE_BEGIN;...如:Yii::$app->vendorPath//输出框架路径 Yii::$app->components['redis']//输出redis配置信息 } .........::$app变量中 当然也包括它的父类如:\yii\base\Module \yii\di\ServiceLocator \yii\base\Component \yii\base\Object $this...Object是基础类,所以绝大部分类都能直接调用配置文件中配置内容 如: var_dump(Yii::$app->name); 实际上config文件的数组中有name属性 return [...类,主要用来加载http状态,及头信息,如301,302,404,ajax头等等的获取*/ if ($result !
接口特性 module的方式发布,无侵入 接口显式声明 接口版本管理 基于yii2 自身的 validator 自动生成接口文档 在线测试工具 关键字搜索相关接口 自由灵活的配置,关键类可以自定义替换...responseClass:响应的处理类, 如果想实现输出xml格式,请继承wuyuxifeng\api\Response重写render方法,配置即可 errorHandlerClass:异常处理类,如果想实现默认的错误...现支持下面几种认证方式 query: 请求参数中认证,即把token放在地址中 http://server.example.com/apiurl?...对于需要认证的接口中可以使用 Yii::$app->user->identity 获取用户的实例 returnJson() 返回示例,用于生成接口文档中的示例 json handle 的注解用来生成在线文档的返回字段...description'=>'二级制流文件上传,name=file1'], ]; } 其中 key 为字段名 type:类型,可以使用 string,boolean,int,float 对于输入不做任何强制校验
$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass php_processes; fastcgi_index...* User: Chan * Date: 2018/6/8 * Time: 14:14 */ use yii\rest\UrlRule; return [ [ 'class...actionForm() { $form=new Form(); $datetime = new \DateTime; $request = \Yii...],['id'=>$id])->execute(); return $this->msg("更新成功"); }} } mysql表结构: 第五步: 自动生成一个...(因为删除是删除数据库中的某一条数据). 更新是必须数据库里面有的才能更新!!!
这篇说下yii2.0开发 API 吧,使用 RESTful API模式 安装Yii2.0 通过 Composer 安装 这是安装Yii2.0的首选方法。...'/api'); 配置 Web 服务器 很多同学在看了我这个教程,说是运行不起来、一直是404,然后就问我为什么?...false in UrlManager, do not allow accessing URLs with script name RewriteRule ^index.php/ - [L,R=404...false, //设置为false 就可以去掉复数形式了 ], ], ] 加入 'pluralize' => false, 就表示去掉复数形式了,再次强调不推荐 ok,在控制器中我们没有写任何一句代码...,他就给我们生成许多方法,但是有时候我们可能需要修改一些代码,来达到我们想要的效果,比如连表查询,然后再返回数据 接下来我们就实现这样的功能: 打开刚才新建的user控制器, 重写 action方法:
1.首先把代码上传到linux配置的目录中(如:/www/你的站点目录(如: /www/wwwroot/my.com/)) 2.cd /www/你的站点目录( 如:/www/wwwroot/my.com.../init 选择生产环境(0:开发环境,1:生产环境) (进行项目初始化,会给项目相应的权限否则无法访问) 3.比如我的项目在 /www/wwwroot/my.com 配置前台项目(如: /www/wwwroot.../my.com/frontend/web) 4.我使用的是centos7.0+nginx1.10+mysql5.7+php5.6,用的是宝塔面板,这个时候需要我开始php.ini中的open_basedir...= /www/wwwroot/my.com/ (一定要对应到yii2项目,并且后面加/,否则只能访问前台,而不能你访问后台) 否则会报错:Warning: require(): open_basedir...部署上线只能访问首页,其他都404 location / { try_files $uri $uri/ /index.php?
随机小技巧 当表单提交操作时,如出现“Unable to verfy your data submission”错误,是被Yii2框架的CSRF验证拦截了。...我们可以在控制器中把成员属性"public $enableCsrfValidation = false;"禁用。...如第二个操作数是一个数组,那么它代表的是取值范围。如果第二个操作数是Query对象,那么这个子查询的结果将会作为取值范围。...例如: ['like','name','tester']会生成 name LIKE "%tester%" 如果单位制是一个数组,那么将会生成应“and” 串连起来的多个“like”语句。...例如: ['>','age',10] 将会生成 age > 10 关联查询 场景:order表中的主键id 对应 order_log表中的 order_id,现在查询order表关联order_log中
下载连接公式: 下载链接 = 官网的版本详情链接 + /providers/(供应商英文意思) + 供应商名称(如virtualbox、vmware)+ .box 查找Box 获取供应商名称...fastcgi_params; fastcgi_pass 127.0.0.1:9000; try_files $uri =404...fastcgi_params; fastcgi_pass 127.0.0.1:9000; try_files $uri =404...; } } 在主机的hosts中配置 sudo vim /ect/hosts 192.168.33.10 tp5.vagrant.com...y redis-server SHELL 然后vagrant reload --provision 重启 注意: 一定要正常关闭虚拟机,进入初始化虚拟机的目录,不然下次开机有可能引起异常错误
yii2的一个强大之处之一就是他的Form组件,既方便又安全。有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有。...attribute=== "") $this->addError($attribute, "B的值不可以为空."); } } 上面的意思就是说当A等于1且B的值为空时,返回错误信息...注意项: 在当前例子中,如果B字段的值为空或者已经在其他验证中失败时,我们自定义的rules规则不会生效。...false, 'skipOnError' => false], ]; } 一律失效的问题请检查两个问题 validate之后打印$model->erros看提示信息 确保该值为真,否则失效,除非强制非真有效...' => ['id' => 1]],该值会被传递到自定义方法中。
先看 Yii.php 内的逻辑 /** * Yii::autoload 内执行过程 * 1、先查看类是否在 Yii::$classMap 中存在,存在直接调用 getAlias 生成类文件物理地址...* 2、如果 Yii::$classMap 中不存在,将命名空间转为实际路径调用 getAlias 生成类文件物理地址 */ spl_autoload_register(['Yii', 'autoload...\web\ErrorHandler::register,初始化错误异常显示和抛出 */ $this->registerErrorHandler($config); /** * 在多层继承中...的配置 * 直接使用配置创建 * controllerMap 配置如 * [ * 'controllerMap' => [ *...,actions 配置如 * * public function actions() * { * return [ * 'error
生成模块 ?...生成公共模型 ? 生成一个公共模型,方便不同入口应用复用和继承。 生成成功会显示如下: ? 5. 生成后台私有模型 生成后台私有模型,并继承公共模型,在该类中实现后台私有的方法。 ?...生成成功会显示如下: ? 6. 生成CRUD操作和视图 ? 去掉用不到的视图文件 ? 生成成功会显示如下: ? 7....(非Yii2方法) 如下: 访问index方法时,datetime字段会被格式为"Y-m-d H:i:s"格式, 访问xls方法时,datetime字段会被格式为"Y年m月d日"格式, 匿名函数中的...string', 'max' => 500]//字符串,最长500 ]; } guide: 详细的rules 数据验证不通过时可以根据打印$model->getErrors()查看具体错误信息
领取专属 10元无门槛券
手把手带您无忧上云