thinkphp6-控制器
控制器定义
添加控制器 app/controller/User.php
<?php
namespace app\controller;
class User
{
public function login()
{
return 'login';
}
}
添加路由 route/app.php
Route::rule('user/login','user/login');
访问测试
http://127.0.0.1:8000/user/index
基础控制器
系统基础控制器类
app\BaseController
直接使用think\App和think\Request对象
<?php
namespace app\controller;
use app\BaseController;
class User extends BaseController
{
public function login()
{
$action = $this->request->action();
$path = $this->app->getBasePath();
return 'login';
}
}
空控制器
空控制器 __call
<?php
namespace app\controller;
use app\BaseController;
class User extends BaseController
{
public function login()
{
$action = $this->request->action();
$path = $this->app->getBasePath();
return 'login';
}
public function __call($method, $args)
{
var_dump($method);
var_dump($args);
return 'error request!';
}
}
测试与结果
http://127.0.0.1:8000/user/create?name=huyongjian
string(6) "create" array(1) { ["name"]=> string(10) "huyongjian" } error request!
自动生成控制器
生成新Student控制器
php think make:controller Student
控制器添加return
<?php
declare (strict_types = 1);
namespace app\controller;
use think\Request;
class Student
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
return 'index';
}
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
return 'create';
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
return 'save';
}
/**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
return 'read';
}
/**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
return 'edit';
}
/**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
return 'update';
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
return 'delete';
}
}
注册路由
Route::resource('student', 'Student');
访问测试
GET http://127.0.0.1:8000/student
POST http://127.0.0.1:8000/student/create
PUT http://127.0.0.1:8000/student/save
GET http://127.0.0.1:8000/student/read
GET http://127.0.0.1:8000/student/edit
PUT http://127.0.0.1:8000/student/update
DELETE http://127.0.0.1:8000/student/delete
控制器中间件
中间件生成与修改
php think make:middleware Auth
<?php
declare (strict_types = 1);
namespace app\middleware;
class Auth
{
/**
* 处理请求
*
* @param \think\Request $request
* @param \Closure $next
* @return Response
*/
public function handle($request, \Closure $next)
{
echo 'middleware auth'.PHP_EOL;
if ($request->param('name') == 'think') {
return redirect('user/think');
}
return $next($request);
}
}
控制器添加中间件
<?php
namespace app\controller;
use app\BaseController;
use app\middleware\Auth;
class User extends BaseController
{
protected $middleware = [Auth::class];
public function login()
{
$action = $this->request->action();
$path = $this->app->getBasePath();
return 'login';
}
public function __call($method, $args)
{
var_dump($method);
var_dump($args);
return 'error request!';
}
}
测试与结果
http://127.0.0.1:8000/user/login
middleware auth login

浙公网安备 33010602011771号