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) ?>
最新文章
- VMware Workstation安装MAC OS X系统
- poi批量导入excel文件
- S2SH框架的集成
- 7、8上的cell上的一个按钮,当点击按钮时,要拿到这个cell,可以用代理,也可以用superview
- 编程基础-msdn编程指南笔记
- 调用CachedRowSetImpl类时,为什么会出现这样的错误
- 修改Mac系统的文件权限
- 【整理】QT .pro文件中的变量说明
- mysql字符集小结
- poj3630 Phone List
- 执行npm run build之后显示空白页面
- Updates were rejected because the tip of your current branch is behind 问题出现解决方案
- 性能测试—JMeter 常用元件(四)
- ExtJs 编译
- actor 内最好不要阻塞
- [Linux]实际操作中命令 su 与 sudo 的区别
- Apache版本的Hadoop HA集群启动详细步骤【包括Zookeeper、HDFS HA、YARN HA、HBase HA】(图文详解)
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(八)安装zookeeper-3.4.12
- 【Python3】 django2.0 url 跳转设置
- 【CSS系列】height:100%设置div的高度
热门文章
- 15.更新和删除数据--SQL
- idea svn操作
- Exploring refit, an automatic type-safe REST library for .NET Standard
- 解决ueditor jquery javascript 取值问题
- If you can&#39;t take it, don&#39;t dish it out.
- [20190611]记录一下github的基本用法
- 对Yii 2.0模型rules的理解(load()无法正确装载数据)
- 中国区 Azure 服务和定价模式概述
- POJ 1845 Sumdiv (数学,乘法逆元)
- 新萝卜家园GHOST WIN7系统32,64位官方版下载