Laravel 514 + Bootstrap 334 笔记四:Laravel 控制器

php中文网
发布: 2016-07-30 13:31:41
原创
1090人浏览过

在前文中,我们把用户的请求响应逻辑放在路由中处理,实际情况下这不现实,也没有前方代码那么简单。

而大部分情况下,用户的请求操作是放在Controller中处理的(这不包含业务处理逻辑)。

Laravel 的所有控制器是在 app/Http/Controllers 目录中。

1 创建简单的控制器

1.1 无参数的控制器

在目录 app/Http/Controllers 目录中新建文件 HomeController.php,代码如下:

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class HomeController extends Controller {
    public function hw()
    {
        return view('hw');
    }
}
登录后复制

在 resources/views 下新建视图 hw.php,内容如下:
<html>
<body>
Hello World!
</body>
</html>
登录后复制

修改 routes.php,修改后的代码如下:
<?php

Route::get('/', function () {
    return view('welcome');
});

Route::get('/hw', 'HomeController@hw');
登录后复制

打开浏览器访问:http://localhost:801/hw,如下图示:


1.2 控制器向视图传递参数

当Controller需要向View传递参数时,是这样的,修改控制器的hw方法:

    public function hw()
    {
        return view('hw',['name'=>'CBW']);
    }
登录后复制
修改hw.php视图页代码:
<html>
<body>
[<?php echo $name; ?>],您好!
</body>
</html>
登录后复制
再次访问如下 :


1.3 控制器从路由读取参数并传递

当控制器需要从路由获取参数时,是这样的,修改上例示的路由代码段:

Route::get('/hw/{name}', 'HomeController@hw');
登录后复制
修改控制器的hw方法:
    public function hw($name)
    {
        return view('hw',['name'=>$name]);
    }
登录后复制
然后再次访问:http://localhost:801/hw/calvin,如下图示:


2 路由器深入

Picsart AI Image Generator
Picsart AI Image Generator

Picsart推出的AI图片生成器

Picsart AI Image Generator 37
查看详情 Picsart AI Image Generator

2.1 控制器和命名空间

一般情况下,一个应用系统将由多个子项目组成,比如一个网站有前台和后台,前台有新闻功能用于阅读,后台有新闻功能用于管理。

现在,我们假设开发一个Web系统,包含两个模块:普通用户模块(Visit)和系统管理模块(Manage)。

A.在 app/Http/Contollers 目录中分别新建两个模块的控制器子目录:Visit、Manage;

B.在 resources/views 下创建两个子目录:Visit、Manage,并在 Visit下创建子目录:Home;

C.把上例创建的 HomeController 移动到上一步新建的 Visit 中。修改后的代码如下:

<?php namespace App\Http\Controllers\Visit;

use App\Http\Controllers\Controller;

class HomeController extends Controller {
    public function hw($name)
    {
        return view('Visit.Home.hw',['name'=>$name]);
    }
}
登录后复制

D.修改routes.php代码段为:

Route::get('/hw/{name}', 'Visit\HomeController@hw');
登录后复制
E.把视图文件hw.php移动到 resources/views/Visit/Home 下;
现在,再次访问:http://localhost:801/hw/calvin,依然是正确的。

2.2 控制器中间件

在前文中我们已经演示了中间件的使用,再回顾一下上文的示例:

Route::get('/user/{age}', ['middleware' => 'my', function ($age) {  
    return '用户年龄:'.$age;  
}]);  
登录后复制

事实上我们也可以在控制器的构造函数中处理:
class UserController extends Controller {
    public function __construct()
    {
        $this->middleware('my');
    }
}
登录后复制

另外,还有隐式控制器、RESTful、路由缓存等等,后文再继续补充。

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了Laravel 514 + Bootstrap 334 笔记四:Laravel 控制器,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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