首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 PHP语言发展历史及其适合的应用领域
1.2 什么是框架
1.3 为什么要用框架开发
1.4 自定义框架
1.4.1 MVC框架模式的实现
1.4.2 入口文件
1.4.3 应用(前端控制器)
1.4.4 从自定义框架到Yii2框架
2.1 Yii简介
2.1.1 什么是Yii框架技术
2.1.2 Yii2的优点
2.1.3 应用案例
2.2 下载Yii2
2.3 运行应用
2.4 输出“Hello World”
2.5 入口文件
2.6 应用主体
2.7 MVC框架模式
2.8 Yii2框架中的控制器
2.9 Yii2框架中的视图
2.10 项目实现迭代一:渲染首页、列表页和内容页视图
3.1 布局概述
3.2 项目实现迭代二:创建并使用布局渲染首页视图
3.3 Controller类的render()方法执行流程
3.4 应用级布局
3.5 嵌套布局
3.6 项目实现迭代三:使用嵌套布局渲染“新闻中心”列表页
3.7 视图文件的存储路径
4.1 模块概述
4.2 使用Gii创建模块
4.3 模块中的资源文件
4.4 项目实现迭代四:文章管理
5.1 ActiveRecord模型概述
5.2 通过CRUD(增查改删)操作理解ActiveRecord类
5.2.1 文章表(ds_article)
5.2.2 在配置文件中初始化数据库连接
5.2.3 创建ActiveRecord模型
5.2.4 通过查询操作理解ActiveRecord类
5.2.5 通过插入和更新操作理解ActiveRecord类
5.2.6 通过删除操作理解ActiveRecord类
5.3 项目实现迭代五:首页“行业百科”数据查询
5.4 项目实现迭代六:在“文章添加”页面实现数据插入
6.1 ActiveRecord模型类的find()方法与查询执行流程
6.2 查询方法find()实例
6.2.1 实现带有逻辑运算符和比较运算符的查询
6.2.2 实现范围比较查询
6.2.3 实现模糊查询
6.3 查询构建类ActiveQuery
6.3.1 ActiveQuery成员属性简介
6.3.2 ActiveQuery成员方法简介
6.3.3 Query类where()成员方法简介
6.4 关联查询
6.5 项目实现迭代七:完成首页中的数据填充
6.5.1 实现幻灯片切换
6.5.2 实现成功案例
6.5.3 实现其他栏目的文章内容查询
当前位置:
首页>>
技术小册>>
Yii2框架从入门到精通(上)
小册名称:Yii2框架从入门到精通(上)
### 2.10 项目实现迭代一:渲染首页、列表页和内容页视图 在Yii2框架的项目开发过程中,实现不同页面的视图渲染是构建动态网站和应用的基石。本章节将引导你通过具体步骤,实现一个典型Web应用中的三个核心页面:首页(Index Page)、列表页(List Page)和内容页(Detail Page)的视图渲染。这将涉及控制器(Controller)的创建、动作(Action)的定义、视图(View)文件的编写以及路由(Routing)的配置,确保每个页面都能正确地展示数据。 #### 2.10.1 项目准备 在开始之前,请确保你已经安装了Yii2框架,并创建了一个基本的项目结构。通常,Yii2项目会包含`controllers`、`models`、`views`等目录,分别用于存放控制器、模型、视图等代码。 #### 2.10.2 创建控制器 首先,我们需要在`controllers`目录下创建一个新的控制器,用于处理首页、列表页和内容页的请求。假设我们的项目是关于博客文章的管理,那么可以命名为`ArticleController.php`。 ```php <?php namespace app\controllers; use Yii; use yii\web\Controller; class ArticleController extends Controller { // 首页动作 public function actionIndex() { // 这里可以处理获取首页数据的逻辑,暂时仅渲染视图 return $this->render('index'); } // 列表页动作 public function actionList() { // 假设这里通过模型获取文章列表 // $articles = Article::find()->all(); // 渲染列表页视图,并传递文章列表数据 // return $this->render('list', ['articles' => $articles]); return $this->render('list'); // 暂时不传递数据 } // 内容页动作 public function actionView($id) { // 假设通过文章ID获取具体文章数据 // $article = Article::findOne($id); // 渲染内容页视图,并传递文章数据 // return $this->render('view', ['article' => $article]); return $this->render('view'); // 暂时不传递数据 } } ``` 注意:上述代码中的`Article::find()->all();`和`Article::findOne($id);`是假设的模型调用,实际使用时需替换为具体的模型方法。 #### 2.10.3 创建视图文件 接下来,在`views/article`目录下创建对应的视图文件:`index.php`、`list.php`和`view.php`。 ##### index.php(首页视图) ```php <h1>欢迎来到博客首页</h1> <p>这里可以放置一些欢迎语或者首页的轮播图等。</p> <!-- 可以根据需要添加更多内容 --> ``` ##### list.php(列表页视图) ```php <h1>文章列表</h1> <ul> <?php // 假设有$articles数据,则遍历显示 // foreach ($articles as $article): ?> <!-- <li><a href="<?= Yii::$app->urlManager->createUrl(['article/view', 'id' => $article->id]) ?>"><?= $article->title ?></a></li> --> <?php // endforeach; ?> <!-- 暂时显示静态内容 --> <li>示例文章1</li> <li>示例文章2</li> </ul> ``` ##### view.php(内容页视图) ```php <h1>文章详情</h1> <p>文章ID: <?= $id ?></p> <!-- 假设有$article数据,则显示文章标题和内容 // <h2><?= $article->title ?></h2> // <p><?= $article->content ?></p> --> <p>这里将展示文章的详细内容,目前仅显示文章ID作为示例。</p> ``` #### 2.10.4 配置路由 在Yii2中,URL的解析和生成依赖于路由规则。默认情况下,Yii2会根据控制器的命名和动作名来解析URL。但为了使URL更加友好,你可以在`config/web.php`文件中的`urlManager`组件下配置显式的路由规则。 ```php 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ // 首页路由 '' => 'article/index', // 列表页路由 'articles' => 'article/list', // 内容页路由,假设文章ID为数字 '<id:\d+>' => 'article/view', // 也可以定义更具体的路由规则,如使用'article/<id:\d+>'来明确路径结构 ], ], ``` 注意:上面的路由配置中,`<id:\d+>`是一个正则表达式,用于匹配数字ID,这在内容页路由中非常有用。然而,对于复杂的应用,可能需要更详细的路由规则来避免冲突。 #### 2.10.5 测试和调试 完成上述步骤后,通过浏览器访问你的应用,并尝试访问首页(通常是`http://yourdomain.com/`)、列表页(如`http://yourdomain.com/articles`)和内容页(如`http://yourdomain.com/1`,假设`1`是文章ID)。观察页面是否正确渲染,并根据需要进行调试。 #### 总结 在本章中,我们学习了如何在Yii2框架中创建控制器、定义动作、编写视图文件以及配置路由规则,以实现首页、列表页和内容页的视图渲染。通过这一过程,你可以看到Yii2框架的MVC(Model-View-Controller)架构是如何工作的,以及如何通过不同的组件协作来构建动态Web页面。随着项目的深入,你将需要进一步优化和扩展这些基础功能,比如增加数据库交互、处理表单提交、实现用户认证等。但无论如何,本章的内容都是构建这些高级功能的基础。
上一篇:
2.9 Yii2框架中的视图
下一篇:
3.1 布局概述
该分类下的相关小册推荐:
Swoole入门教程
Yii2框架从入门到精通(中)
Workerman高性能框架-GatewayWorker
PHP合辑4-字符串函数
PHP合辑3-数组函数
Magento零基础到架构师(内容设计)
PHP8入门与项目实战(6)
PHP8入门与项目实战(5)
PHP高性能框架-Swoole
Laravel(10.x)从入门到精通(十五)
Swoole高性能框架-SwooleWorker
PHP程序员面试算法宝典