Yii2 HelloWord
一、安装Yii2
可以直接官网或github下载:
https://github.com/yiisoft/yii2
下载完后进入项目的web/
目录,入口文件为该目录下的index.php,这里直接启用PHP的内置服务器(端口自定义)真,在当前目录下打开终端输入:
php -S localhost:8090
正常情况下就可以在浏览器中访问了。
默认的情况下,我们看到的Yii2首页是/controllers/SiteController.php
下的Index
方法
public function actionIndex()
{
return $this->render('index');
}
上面的Index
方法渲染了index
这个模版,而这个模板位于/views/site/index.php
,至于控制器和视图之间的命名规则,参考这里:
views/ControllerID/ViewName.php
ControllerID
: 表示控制器的ID
,也就是控制器去掉Controller
的前缀,比如SiteController
就对应site
ViewName
: 是对应方法的名字,但是不包括action
字眼,比如actionIndex
对应的是index.php
而在使用render
方法来渲染视图的时候,Yii2
默认地也会渲染载入/views/layouts/main.php
这个文件,而这个文件做的事就是载入一些html头部的共用文件,比如js
,css
,导航栏和底部繁荣导航栏等。这里其实我们最值得关心的其实就是下面这段代码的<?= $content ?>
:
<?= Breadcrumbs::widget([
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
]) ?>
<?= $content ?>
</div>
这个<?= $content ?>
可以说就是我们之后定义视图的内容,我们后续创建的视图文件会被读成字符串的形式赋给$content
,然后进行渲染显示。
二、Hello Word
有了上面的安装和基本知识之后,我们就可以自己动手来创建一个页面了。不过在创建页面之前,我们先来做一点简单的配置:开启Yii2的enablePrettyUrl
模式,因为这样对于后续的开发会便捷很多,而且开启之后,我们的url也会变得很简洁又好,不想现在这样:
http://localhost:8090/index.php?r=site%2Fabout
这是我点击首页导航栏的About
出现的url
,一看到这个,我是拒绝的,所以来到/config/web.php
这个配置文件中,找到'components' => []
这个数组,加入下面的两行代码:
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true
],
这样开启enablePrettyUrl
模式之后,我们就可以通过http://localhost:8999/site/about
来访问我们的About
页面了,这里的规律是这样的:
http://localhost:8090/ControllerID/ActionName
比如,我们在/controllers/SiteController.php
创建一个Say
操作方法:
public function actionSay($target = 'World')
{
return $this->render('say', ['target' => $target]);
}
我们要访问这个方法的正确路径就是http://localhost:8090/site/say
。
在Yii中使用action
关键字前缀来区分用于url操作方法和其他方法,这里的actionSay
接收一个参数$target
,如果用户在访问的时候传入target参数,target
就为用户传入的值,而如果用户没有传入,我们将其默认值设为World。有了控制器的方法,从$this->render('say', ['target' => $target])
这行代码来看,我们需要需要创建一个say.php
模板文件,这个文件是在哪里的呢?
根据前面说的视图模板规则,它应该位于:/views/site/say.php
。在里面简单写上下面这一小段代码:
<?php
use yii\helpers\Html;
?>
<h1>Hello <?= Html::encode($target) ?></h1>
<p>Welcome to your Yii2 demonstration application.</p>
出于安全的因素考虑,我们在say.php
这个模版文件中使用了yii\helpers\Html
类来对用户传入的数据进行过滤,所以我们才有了这样的输出:
<?= Html::encode($target) ?>
Yii2 HelloWord的更多相关文章
- Yii2的深入学习--行为Behavior
我们先来看下行为在 Yii2 中的使用,如下内容摘自 Yii2中文文档 行为是 [[yii\base\Behavior]] 或其子类的实例.行为,也称为 mixins,可以无须改变类继承关系即可增强一 ...
- 网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述
上一篇文章网站实现微信登录之嵌入二维码中描述了如何在自己的登录页面内嵌入登录二维码,今天的这篇文章主要是描述下在扫码成功之后微信重定向回网站后登录逻辑的处理,其实也就是验证身份信息,授权用户登录的逻辑 ...
- 网站实现微信登录之嵌入二维码——基于yii2开发的描述
之前写了一篇yii2获取登录前的页面url地址的文章,然后发现自己对于网站实现微信扫码登录功能的实现不是很熟悉,所以,我会写2-3篇的文章来描述下一个站点如何实现微信扫码登录的功能,来复习下微信扫码登 ...
- yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习
对于一个有登录限制(权限限制)的网站,用户输入身份验证信息以后,验证成功后跳转到登录前的页面是一项很人性化的功能.那么获取登录前的页面地址就很关键,今天在做一个yii2项目的登录调试时发现了一些很有意 ...
- 记一次nginx部署yii2项目时502 bad gateway错误的排查
周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定.这个问题是我以前在部署yii2时没有遇到过的,因此记在 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- yii2 RESTful api的详细使用
作者:白狼 出处:http://www.manks.top/yii2-restful-api.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- yii2 ActiveRecord多表关联以及多表关联搜索的实现
作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明 ...
- yii2权限控制rbac之rule详细讲解
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...
随机推荐
- 微信小程序实战
为了积攒粉丝,公司决定做一个一分钱姓名测算的小程序引导大家关注公众号. 实现的需求就是 1 首页 用户编辑姓名和性别进行提交 2 测算结果页 实现分享和支付功能 3 测算历史页面 看到用户曾经测算记 ...
- C# 数组之List<T>
一.引言 List<T>是ArrayList的泛型等效类,底层数据结构也是数组. 相比Array而言,可以动态的拓展数组长度.增删数据 相比ArrayList而言,由于声明的时候就已经规定 ...
- Web自动化测试—PO设计模式(二)
PO设计模式要点一:页面类都继承于BasePage 目录结构 ui_auto_test --src --pages --__init__.py --base_page.py --login_page. ...
- Linux修改war包中文件
rm -rf /tmp/wiq.warcp /u02/wms_dev/wiq-app/wars/wiq.war /tmpcd /tmp jar xvf wiq.war vim WEB-INF/clas ...
- Jenkins+Gitlab+Ansible自动化部署(一)
首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab ...
- 《springcloud 三》分布式配置中心
Git环境搭建 使用码云环境搭建git服务器端 码云环境地址:https://gitee.com/majie2018 服务端详解 项目名称:springboot2.0-config_server Ma ...
- jsonp, json区别
JSONP由两部分组成: 回调函数和数据 回调函数是接收到响应时应该在页面中调用的函数,其名字一般在请求中指定. 数据是传入回调函数中的JSON数据. jsonp var script=documen ...
- BZOJ4939: [Ynoi2016]掉进兔子洞(莫队 bitset)
题意 题目链接 一个长为 n 的序列 a. 有 m 个询问,每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的个数和,询问独立. 注意这里删掉指的是一个一个删,不是把等于 ...
- SPEC CPU 使用简介
SPEC CPU2000简介 SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测 ...
- 洛谷 P2895 [USACO08FEB]流星雨Meteor Shower
题目描述 Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will ...