Takrifan pengawal
Nama kelas adalah sama dengan nama fail,
Rendering output
Output pemaparan menggunakan output pemulangan
<?php namespace app\admin\controller; use app\admin\model\User; class Index { public function Index(){ $data = array( 'ming' => 'ming', 'ming' => 'xiao' ); return json($data); } }
Pada masa ini, halaman itu memaparkan fail json
Kod tidak boleh diganggu dalam pengawal . .
Gunakan output henti
<?php namespace app\admin\controller; use app\admin\model\User; class Index { public function Index(){ $data = array( 'ming' => 'ming', 'ming' => 'xiao' ); halt("输出测试"); return json($data); } }
Gunakan output henti
Pengawal berbilang peringkat
Pengawal berbilang peringkat berbilang peringkat kawalan Pengawal secara langsung menggunakan
<?php namespace app\admin\controller\Index; class Blog { public function index(){ } public function read($id){ var_dump(url('index/blog/read', ['id' => 5, 'name' => 'ming'])); return $id; } }
dalam ruang nama untuk mentakrifkan sub-pengawal Blog
struktur direktori di bawah ruang nama Indeks
untuk menentukan peraturan penghalaan
<?php use think\facade\Route; Route::rule('blog/:id', 'index.blog/read'); Route::rule('/', 'Index/index');
Akses direktori blog di bawah laluan indeks
Pengawal Asas
Pengawal akan mempunyai pengawal asas
Sistem akan menyediakan
app\BaseController
Pengawal asas
Fail direktori adalah seperti berikut
Semua kawalan mempunyai kelas kawalan asas
appBaseController
Disebabkan oleh mod berbilang aplikasi. . Alihkan kelas asas ke direktori
Tukar ruang nama
namespace app\index\controller; use think\App; use think\exception\ValidateException; use think\Validate;
<?php namespace app\index\controller; use think\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index() { $action = $this->request->action(); $path = $this->app->getBasePath(); var_dump($action); var_dump($path); } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } }
Kandungan output
string(5) "index" string(43) "/home/ming/PhpstormProjects/untitled12/app/"
Pengesahan pengawal
<?php namespace app\index\controller; use think\exception\ValidateException; use think\Request; class Index extends BaseController { /** * 显示资源列表 * * @return \think\Response */ public function index() { try { $this->validate( [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ], 'app\index\validate\User'); } catch (ValidateException $e) { // 验证失败 输出错误信息 dump($e->getError()); } } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } }
Dengan cara ini pengawal mengesahkan
Pengawal kosong
Pengawal kosong ialah kaedah yang dipanggil apabila tiada kaedah ditemui
public function __call($name, $arguments) { // TODO: Implement __call() method. return 'error request'; }
Pengawal Sumber
Buat pengawal yang tenang
Input
php think make:controller index@Blog
Jana pengawal sumber
Jana api
<?php namespace app\index\controller; use think\Request; class Blog { /** * 显示资源列表 * * @return \think\Response */ public function index() { // } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function save(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 保存更新的资源 * * @param \think\Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // } /** * 删除指定资源 * * @param int $id * @return \think\Response */ public function delete($id) { // } }
Daftar penghalaan sumber
Route::resource('blog', 'Blog');
Pengawal middleware
Pengawal penulisan
<?php namespace app\index\middleware; class Hello { public function handle($request, \Closure $next){ $request->hello = 'ming'; return $next($request); } }
Mendaftarkan pengawal menggunakan laluan
<?php use think\facade\Route; Route::rule('ming', 'index/index')->middleware( [ app\index\middleware\Hello::class ] );
Lawati http://localhost: 8082/index/ming
Kehadiran ming
menunjukkan bahawa pendaftaran middleware berjaya.