Rumah >rangka kerja php >Laravel >Mari kita bincangkan tentang penghalaan dan pengawal Laravel8
Artikel ini membawa anda pengetahuan yang berkaitan tentang laravel, yang terutamanya memperkenalkan isu yang berkaitan dengan penghalaan dan pengawal, termasuk kumpulan penghalaan, melompat ke pengawal, penghalaan pasca dan Penghalaan Ajax serta kandungan lain yang berkaitan, mari kita ambil lihat di bawah, semoga bermanfaat untuk semua.
[Cadangan berkaitan: tutorial video laravel]
laluan akses laravel ialah:
1) Penghalaan—Pengawal— Halaman /Output
2) Penghalaan—Fungsi Tanpa Nama—Halaman/Output
Masukkan direktori akar projek semasa dan jalankan cmd
atau gunakan IDE. untuk mengautomasikan Terminal dengan kekunci pintasan ALT F12
php artisan route:list
dalam fail route/web.php
Nama domain saya ialah www.la.com, mengikut situasi sebenar anda
Route::get('/', function () { return view('welcome');});
Lihat lokasi direktori: sumber/pandangan, Kandungan HTML juga disimpan. view()
ialah fungsi pembantu ('selamat datang') bermaksud melompat ke paparan selamat datang.blade.php, iaitu halaman selamat datang yang kita lihat apabila kita memulakan Laravel buat kali pertama.
Tulis: www.la.com/ dalam bar alamat penyemak imbas, hasil yang dijalankan ialah:
Route::get('ok', function () { echo "hello world";});
3. Laluan dengan parameter
ialah fungsi tambahan laravel, digunakan untuk mencetak data
dump()
1) Parameter Tunggal
Route::get('show/{a}', function ($a) { dump($a);});Nota: Ia ialah rentetan
2) Berbilang parameter
Route::get('show/{a}/{b}', function ($a,$b) { echo $a.','.$b;});
4
Route::get('user/{name}/{age}', function ($name,$age) { echo $name.' '.$age; //直接输出 })->where('age','\d+')->where('name','[a-zA-Z]+');Jika syarat tidak dipenuhi, keputusannya ialah: 404 NOT FUNDJalankan dalam pelayar: http://www.la.com/user/zhangsan/18
Keputusan : zhangshan 18
5 Menghalakan kumpulan
Route::group(array('prefix'=>'user'),function(){ Route::get('/index', function () { echo 'index'; }); Route::get('/add', function () { echo 'add'; });});
http://www.la.com/user/index
indeks
Route::prefix('user')->group(function(){ Route::get('/index', function () { echo 'index'; }); Route::get('/add', function () { echo 'add'; });});1) Cipta pengawal dan tulis kaedahdalam Jalankan direktori akar projek
php artisan make:controller TestController
2) Tulis penghalaan
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller{ public function hello(){ echo "TestController的hello方法"; }}Tambah di permulaan config/web.php
Kemudian tulis laluan
use App\Http\Controllers\TestController;
Jalankan penyemak imbas: http://www.la.com/hello
Keputusan:Route::get('/hello',[TestController::class,'hello']);//跳到控制器的方法
7.POST Routing
paparanKami mula-mula menambah
views/user文件夹
kod di dalam add.blade.php
: nbsp;html> <title>测试POST提交</title>
use Illuminate\Http\Request;Route::prefix('user')->group(function(){ Route::get('/add', function () { return view('user.add'); }); Route::post('/insert', function (Request $request) { dump($request->all()); echo "post路由验证成功"; });});
Dapatkan semua parameter permintaanview('user.add')
Cetak data$request->all()
dump()
Uji
8
headers: {
‘X-CSRF-TOKEN’: $(‘meta[name="_token
"]’).attr(‘content’)
},
nbsp;html> <meta> <title>CSRF</title> <meta><script></script><script> $.ajax({ url: "http://www.la.com/index",//本页面 type: "POST", data: { name:"名字" }, headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }, success: function (data) { console.log("200"); } });</script>
别名路由就是给某一个路由起一个别名,直接使用使用原名可以访问路由,但直接使用别名不能访问这个路由,同时在其他页面调用别名可以访问这个路由。
Route::get('user/profile',function(){ return 'my url:'.route('profile');})->name('profile'); //创建一个路由 user/profile,这个路由的作用是返回路由 profile 的 RUL 地址,并给这个路由起一个别名 profile Route::get('redirect',function(){ return redirect()->route('profile'); }); //创建一个名为 redirect 的路由,这个路由的作用是跳转到路由 profile。
route() 生成完整的URL
redirect()->route(‘profile’); //重定向命名路由
在浏览器中运行 www.la.com/user/profile
结果:
在浏览器中运行www.la.com/profile
结果:404 NOT FOUND
在浏览器中运行www.la.com/redirect
结果:
之前写的控制器 Controller 都直接写在 Http\Controllers 文件夹之中,但实际情况是控制器也会分类,比如与管理员相关的操作会在 Controllers 中,再建一个文件夹 Admin,然 后把所有关于管理员的控制器类都放在这个文件夹中。如果这样的话,就要添加名称空间。
php artisan make:controller Admin\IndexController
使用这种方法创建的控制器,自动加载名称空间,如下图所示
观察与之前创建控制器php artisan make:controller TestController
的区别
方法二:复制粘贴其他类
在Controllers文件夹下创建Admin文件夹,复制之前创建的控制器TestController,照着上图修改。
命名空间 namespace App\Http\Controllers\Admin;
添加类引用 use App\Http\Controllers\Controller;
public function index(){ return "Admin文件夹下的IndexController中的index方法";}
use App\Http\Controllers\Admin\IndexController;Route::group(['namespace'=>'Admin'],function(){ Route::get('admin',[IndexController::class,'index']);//管理员的主页 Route::get('admin/user',[IndexController::class,'index']);//管理员用户相关 Route::get('admin/goods',[IndexController::class,'index']);//商品相关});
浏览器输地址
http://www.la.com/admin
http://www.la.com/admin/user
http://www.la.com/admin/goods
结果都是一样
【相关推荐:laravel视频教程】
Atas ialah kandungan terperinci Mari kita bincangkan tentang penghalaan dan pengawal Laravel8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!