控制器
在Laravel框架中,控制器的主要作用是接收用户的请求,调用模型处理数据,最后通过视图展示数据。
一、控制器的创建
控制器文件的保存目录为app\Http\Controllers,在该目录下已经提供了一些示例文件
Laravel 提供了自动生成控制器的命令。
cmd
php artisan make:controller 控制器名
-
php artisan
表示使用Laravel
提供的artisan
工具 -
make:controller
表示生成控制器,在后面书写控制器名 -
控制器名采用大驼峰的形式,后面加上Controller后缀,如
TestController
新建一个名字为的TestController控制器文件
shell
php artisan make:controller TestController
如果出现这种情况就是没有PHP环境
在环境变量里面找到path添加PHP路径
laravel根目录下启动cmd输入成功
创建不同模块下的控制器命令:
shell
php artisan make:controller Admin/TestController
自动生成以下代码
二、控制器路由
控制器路由是路由的一种定义方式
- 定义路由时,基本都是通过传入一个回调函数来处理请求,而控制器路由则是传入一个指定的控制器和方法来处理请求。
- 将回调函数修改为
控制器类名@方法名
即可实现控制器路由
web.php
php
Route::get('admin/test1','Admin\TestController@test1');
TestController.php
php
public function test1()
{
return '这是test方法';
//
}
访问http://localhost/admin/test1
三、接收用户输入
3.1 通过Request
实例接收
Request
实例保存了当前HTTP请求的信息,通过它可以获取用户输入的数据
-
接受url参数
TestController.php
phppublic function input(Request $request) { $name=$request->input('name'); return 'name的值为'.$name; }
web.php
phpRoute::get('test/input','TestController@input');
访问
http://localhost/test/input?name=你想输入的内容
-
接收路由参数
路由参数可以直接在对应的方法中通过形参来接收
TestController.php
php<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class TestController extends Controller { // public function input(Request $request) { $name=$request->name; return 'name的值为' . $name; } }
web.php
phpRoute::get('test/input/{name}','TestController@input');
访问
http://127.0.0.1/test/input/你想输入的内容
3.2 通过路由参数接收
路由参数可以直接在对应的方法中通过形参来接收
TestController.php
php
public function input($name)
{
return 'name的值为' . $name;
}
web.php
php
Route::get('test/input/{name}','TestController@input');
访问http://127.0.0.1/test/input/你想输入的内容
注:通过路由参数接收和通过Request
实例接收路由参数只是方法不同