0

0

关于Yii2框架搭建完整博客系统的资源分享

黄舟

黄舟

发布时间:2017-09-01 09:49:08

|

2658人浏览过

|

来源于php中文网

原创

yii是php快速开发的最佳实践之一,丰富的扩展资源,快速开发的思想,越来越受到企业的青睐,应用也愈加广泛。本课程以博客系统为例,讲述如何使用yii2.0实战开发,从中学习yii2.0的实践应用。内容分三个部分:基础配置、博客前台、博客后台。

A`BY1S[`8ULG1L$H1%PV`[U.png

视频播放地址:http://www.php.cn/course/266.html

该老师讲课风格:

教师讲课深入浅出,条理清楚,层层剖析,环环相扣,论证严密,结构严谨,用思维的逻辑力量吸引学生的注意力,用理智控制课堂教学进程。学生通过听教师的讲授,不仅学到知识,也受到思维的训练,还受到教师严谨的治学态度的熏陶和感染

本视频中较为难点是Yii框架博客系统的框架路由配置了:

基本路由

您的应用程序的绝大多数路由将在 app/routes.PHP 文件中定义。Laravel 中最简单的路由由一个 URI 和一个闭包调用组成。

基本 GET 路由

代码如下:

Route::get('/', function(){return 'Hello World';});

基本 POST 路由

代码如下:

Route::post('foo/bar', function()
{
return 'Hello World';
});


注册一个路由以响应所有 HTTP 方法

 代码如下:

Route::any('foo', function()
{
   return 'Hello World';
});


强制一个路由必须通过 HTTPS 访问

代码如下:

Route::get('foo', array('https', function()
{
    return 'Must be over HTTPS';
}));


经常您需要根据路由产生 URLs,您可以通过使用 URL::to 方法:

代码如下:

$url = URL::to('foo');

路由参数

代码如下:

Route::get('user/{id}', function($id)
{
return 'User '.$id;
});


可选的路由参数

代码如下:

Route::get('user/{name?}', function($name = null)
{
return $name;
});


带默认值的可选的路由参数

 代码如下:

Route::get('user/{name?}', function($name = 'John')
{
return $name;
});


带正则表达式约束的路由

代码如下:

Route::get('user/{name}', function($name)
{
//
})
->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})
->where('id', '[0-9]+');

路由过滤器

  路由过滤器提供了一种限制访问指定路由的简单的方法,这在您需要为您的站点创建需要认证区域的时候非常有用。Laravel 框架中包含了一些路由过滤器,比如 auth 过滤器、auth.basic 过滤器、guest 过滤器、以及 csrf 过滤器。它们被存放在 app/filters.php 文件中。

定义一个路由过滤器

代码如下:

Route::filter('old', function()
{
if (Input::get('age') < 200)
{
return Redirect::to('home');
}
});


  如果一个响应从一个路由过滤器中返回,这个响应即被认为是这个请求的响应,路由将不被执行,任何关于这个路由的 after 过滤器也将被取消执行。

  为一个路由指定一个路由过滤器

代码如下:

Route::get('user', array('before' => 'old', function()
{
return 'You are over 200 years old!';
}));


为一个路由指定多个路由过滤器

代码如下:

Route::get('user', array('before' => 'auth|old', function()
{
return 'You are authenticated and over 200 years old!';
}));


指定路由过滤器参数

代码如下:

Route::filter('age', function($route, $request, $value)
{
//
});
Route::get('user', array('before' => 'age:200', function()
{
return 'Hello World';
}));


  当路由过滤器接收到作为第三个参数的响应 $response:

代码如下:

Route::filter('log', function($route, $request, $response, $value)
{
//
});


基本路由过滤器的模式

您可能希望根据 URI 为一组路由指定过滤器。

代码如下:

Route::filter('admin', function()
{
//
});
Route::when('admin/*', 'admin');


在上面的例子中,admin 过滤器将应用带所有以 admin/ 开头的路由。星号作为一个通配符,将适配到所有字符的组合。

您也可以通过指定 HTTP 方法约束模式过滤器:

代码如下:

Route::when('admin/*', 'admin', array('post'));

过滤器类

乐彼多用户商城系统LBMall(.net)
乐彼多用户商城系统LBMall(.net)

乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1

下载

对于高级的过滤器,您可以使用一个类代替闭包函数。因为过滤器类是位于应用程序之外的 IoC 容器,您能够在过滤器中使用依赖注入,更易于测试。

定义一个过滤器类

代码如下:

class FooFilter {
public function filter()
{
// Filter logic...
}
}


注册一个基于类的过滤器

 代码如下:

Route::filter('foo', 'FooFilter');

命名路由

命名路由在更易于在生成跳转或 URLs 时指定路由。您可以像这样为路由指定一个名字:

代码如下:

Route::get('user/profile', array('as' => 'profile', function()
{
//
}));

您也可以为控制器的方法指定路由名字:

 代码如下:

Route::get('user/profile', array('as' => 'profile', 'uses' => 'UserController@showProfile'));

  现在您在生成 URLs 或跳转的时候使用路由的名字:

代码如下:

$url = URL::route('profile');
$redirect = Redirect::route('profile');

您可以使用 currentRouteName 方法获取一个路由的名字:

代码如下:

$name = Route::currentRouteName();

路由组

有些时候您可能希望应用过滤器到一组路由。您不必要为每个路由指定过滤器,可以使用路由组:

代码如下:

Route::group(array('before' => 'auth'), function()
{
Route::get('/', function()
{
// Has Auth Filter
});
Route::get('user/profile', function()
{
// Has Auth Filter
});
});

子域名路由

  Laravel 路由也能够处理通配符的子域名,并且从域名中获取通配符参数:

注册子域名路由

代码如下:

Route::group(array('domain' => '{account}.myapp.com'), function()
{
Route::get('user/{id}', function($account, $id)
{
//
});
});

路由前缀

一组路由可以通过在属性数组中使用 prefix 选项为路由组添加前缀:

为路由组添加前缀

代码如下:

Route::group(array('prefix' => 'admin'), function()
{
Route::get('user', function()
{
//
});
});

路由模型绑定

  模型绑定提供了一个简单的方法向路由中注入模型。比如,不仅注入一个用户的 ID,您可以根据指定的 ID 注入整个用户模型实例。首先使用 Route::model 方法指定所需要的模型:

为模型绑定一个变量

 代码如下:

Route::model('user', 'User');


然后, 定义一个包含 {user} 参数的路由:

 代码如下:

Route::get('profile/{user}', function(User $user)
{
//
});

  因为我们已经绑定 {user} 参数到 User 模型,一个 User 实例将被注入到路由中。因此,比如一个 profile/1 的请求将注入一个 ID 为 1 的 User 实例。

  注意: 如果在数据库中没有找到这个模型实例,将引发404错误。

  如果您希望指定您自己定义的没有找到的行为,您可以为 model 方法传递一个闭包作为第三个参数:

代码如下:

Route::model('user', 'User', function()
{
throw new NotFoundException;
});


  有时您希望使用自己的方法处理路由参数,可以使用 Route::bind 方法:

代码如下:

Route::bind('user', function($value, $route)
{
return User::where('name', $value)->first();
});


引发404错误

  有两种方法在路由中手动触发一个404错误。首先,您可以使用 App::abort 方法:

代码如下:

App::abort(404);

其次,您可以抛出一个 Symfony\Component\HttpKernel\Exception\NotFoundHttpException 的实例。

更多关于处理404异常和为这些错误使用使用自定义响应的信息可以在 错误 章节中找到。

路由至控制器

Laravel 不仅允许您路由至闭包,也可以路由至控制器类,甚至允许创建 资源控制器.

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

18

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

34

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii2中文手册
Yii2中文手册

共0课时 | 0人学习

thinkphp基础介绍和yii2基础介绍
thinkphp基础介绍和yii2基础介绍

共10课时 | 2.2万人学习

Yii2框架基础视频教程
Yii2框架基础视频教程

共22课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号