Alamat akses penghalaan



Penghalaan ke pengawal/operasi

Ini ialah kaedah penghalaan yang paling biasa digunakan yang memenuhi syarat dihalakan kepada pengawal dan operasi yang berkaitan, dan kemudian sistem menjadualkan dan melaksanakan operasi yang berkaitan format ialah:

Pengawal/Operasi

Peraturan penghuraian adalah untuk memulakan penghuraian daripada operasi, dan kemudian menghuraikan pengawal Contohnya:

// 路由到blog控制器
Route::get('blog/:id','Blog/read');

Kelas blog ditakrifkan seperti berikut:

<?php
namespace app\index\controller;

class Blog
{
    public function read($id)
    {
        return 'read:' . $id;
    }
}

Pengawal berbilang peringkat disokong. dalam alamat penghalaan, gunakan Kaedah berikut untuk menetapkan:

Route::get('blog/:id','group.Blog/read');

bermaksud penghalaan ke kelas pengawal berikut,

index/controller/group/Blog

juga boleh menyokong penghalaan ke aplikasi dinamik, pengawal atau operasi, contohnya:

// action变量的值作为操作方法传入
Route::get(':action/blog/:id', 'Blog/:action');

penghalaan ke kaedah kelas

Penghalaan Mod ini boleh menyokong pelaksanaan kaedah mana-mana kelas, dan tidak terhad kepada pelaksanaan kaedah pengendalian pengawal.

Format alamat penghalaan ialah (kaedah dinamik):

nama kelas lengkap@nama kaedah

atau (kaedah statik)

nama kelas lengkap::nama kaedah

Sebagai contoh,

executes yang dibaca

kaedah kelas appindexserviceBlog.
Ia juga menyokong pelaksanaan kaedah statik tertentu, contohnya:

Route::get('blog/:id','\app\index\service\Blog@read');

Ubah hala

Anda boleh terus menggunakan kaedah ubah hala untuk mendaftarkan laluan ubah hala

Route::get('blog/:id','\app\index\service\Blog::read');

Laluan ke templat
Laluan ke templat

secara langsung memberikan output templat.

Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);

bermakna laluan ini akan memaparkan output fail templat view/index/hello.html di bawah aplikasi semasa.

Pembolehubah param permintaan semasa boleh dikeluarkan secara langsung dalam fail templat Jika anda perlu menambah pembolehubah templat tambahan, anda boleh menggunakan:

// 路由到模板文件
Route::view('hello/:name', 'index/hello');

Pembolehubah nama dan bandar boleh dikeluarkan dalam templat. .


Kami boleh menggunakan penutupan untuk menentukan beberapa laluan dengan keperluan khas tanpa melaksanakan kaedah pengendalian pengawal, contohnya:

Route::view('hello/:name', 'index/hello', ['city'=>'shanghai']);

Parameter passing

Sokong parameter lulus apabila

Hello,{$name}--{$city}!
ditakrifkan apabila penutupan ditakrifkan Nama pembolehubah dinamik yang ditakrifkan dalam penghalaan peraturan ialah nama parameter dalam fungsi penutupan, tanpa susunan tertentu.
Jadi, jika alamat URL yang kami lawati ialah:

Route::get('hello/:name', response()
        ->data('Hello,' . $name)
        ->code(200)
        ->contentType('text/plain'));

, output penyemak imbas ialah:

Hello, thinkphp
Dependency Injection

Anda boleh menggunakan suntikan dependency dalam penutupan, contohnya: