Yii快速入门经典教程攻略
1. 安装Yii框架
在使用Yii框架进行开发之前,你需要先安装好Yii框架。Yii的安装分为两种方式,一种是直接下载安装包安装,另一种是使用Composer管理Yii项目的依赖。
1.1 直接下载安装包安装
步骤1: 官网下载Yii框架,并解压到本地。
步骤2: 配置Web服务器,将Yii框架中的demo
目录配置为网站的根目录。
步骤3: 在浏览器中输入网站地址,检查是否安装成功。
1.2 使用Composer管理Yii项目的依赖
步骤1: 安装Composer。
步骤2: 在终端中输入以下命令安装Yii框架:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
步骤3: 配置Web服务器,将Yii框架中的basic/web
目录配置为网站的根目录。
步骤4: 在浏览器中输入网站地址,检查是否安装成功。
2. 基础MVC应用
Yii采用MVC架构,也就是将业务逻辑分离出来,便于代码维护和扩展。
2.1 创建控制器并定义动作
例如,我们需要创建一个控制器,名为SiteController
。可以在controllers
目录下新建一个SiteController.php
文件,并定义一个actionIndex
方法:
<?php
namespace app\controllers;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
}
其中,actionIndex
就是一个动作,它将在用户访问index.php/site/index
时被执行。此处,我们配置了动作的视图文件为index.php
。
2.2 创建视图模板
创建模板文件index.php
,并放置于views/site
目录下:
<h1>Hello, world!</h1>
2.3 创建路由
在Yii框架中,控制器和动作的定义共同维护了一个路由。路由的定义可以在配置文件中进行设置。
例如,我们需要为SiteController
设置一个路由,可以在config/web.php
中这样设置:
return [
// ...
'controllerMap' => [
'site' => 'app\controllers\SiteController',
],
'defaultRoute' => 'site/index',
// ...
];
其中,controllerMap
设置了控制器的映射关系;defaultRoute
设置了默认路由。这样,用户通过访问网址index.php
就可以访问SiteController
的actionIndex
方法了。
3. 数据库操作
在Yii框架中,数据库操作主要包括模型定义、数据库操作和查询生成。
3.1 定义模型
在Yii中,每个数据库表都需要对应一个模型。模型是一个类,用于存储与数据表字段对应的数据模型。
例如,假设我们有一个user
表,其中包含id
、name
和email
三个字段,可以按照以下方式创建模型:
<?php
namespace app\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord
{
public static function tableName()
{
return 'user';
}
}
其中,tableName()
方法指定了User
模型对应的数据库表。必须指定该方法,否则Yii将无法识别该模型对应的表。
3.2 数据库操作
通过模型可以进行数据库操作。例如,我们要向user
表中插入一条数据,可以按照以下方式操作:
$user = new User();
$user->name = 'John';
$user->email = 'john@example.com';
$user->save();
这样,就能向数据库中插入一条name
字段为John
,email
字段为john@example.com
的记录了。
3.3 查询生成
除了直接操作数据以外,Yii还提供了Query
类用于生成数据库查询语句。例如,我们要查询user
表中所有name
字段为John
的记录,可以按照以下方式操作:
$users = User::find()->where(['name' => 'John'])->all();
这样,将返回查询结果集,其中包含所有满足条件的记录。
4. 示例
下面通过实例来演示一下如何在Yii框架中使用控制器、视图和数据库模型。
4.1 创建控制器和动作
首先,我们需要创建一个控制器,名为SiteController
,并创建一个名为add
的动作,用于插入数据。
namespace app\controllers;
use app\models\User;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionAdd()
{
$user = new User();
$user->name = 'Tom';
$user->email = 'tom@example.com';
$user->save();
return $this->render('add', [
'name' => $user->name,
'email' => $user->email,
]);
}
}
4.2 创建视图
在视图中,我们需要显示新增的用户信息。可以按照以下方式定义add.php
:
<h1>New User Added!</h1>
<p>Name: <?= $name ?></p>
<p>Email: <?= $email ?></p>
4.3 创建数据库模型
创建一个User
模型,用于保存用户数据到user
表中。
namespace app\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord
{
public static function tableName()
{
return 'user';
}
}
4.4 创建数据库表
在数据库中创建一个user
表。
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL COMMENT '用户名',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
4.5 创建路由
将SiteController
的actionAdd
方法进行路由映射。可以按照以下方式配置路由:
'controllerMap' => [
'site' => 'app\controllers\SiteController',
],
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'add' => 'site/add',
],
],
],
4.6 检查效果
在浏览器中输入网址http://your-site.com/add
访问网站,如果一切顺利,则此时应该能够看到新增用户信息的页面。
以上就是Yii框架快速入门的完整攻略。只有掌握了基础,才能更好地发挥Yii框架的优势。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Yii快速入门经典教程 - Python技术站