Rumah > rangka kerja php > Laravel > teks badan

一篇文章学会Laravel框架所有基础路由知识

Mini
Lepaskan: 2020-05-21 16:12:28
asal
123 orang telah melayarinya

本节内容主要讲解Laravel框架的路由详解,主要讲解路由的定义,参数,规则,访问控制器等操作。

一、常用路由动作

语法

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
Salin selepas log masuk

常用路由方式

Route::post('/', function () {    
    return view('welcome');
});
Salin selepas log masuk
Route::get('/', function () {    
    return view('welcome');
});
Salin selepas log masuk
Route::delete('/', function () {    
    return view('welcome');
});
Salin selepas log masuk


或者直接请求控制器

Route::post('/',  'WelcomeController@index');
Route::get('/',  'WelcomeController@index');
Route::delete('/',  'WelcomeController@index');
Salin selepas log masuk

任何请求方式匹配

Route::any(['get', 'post'], '/', function () {
    return view('welcome');
});
Salin selepas log masuk
Route::any(['get', 'post'], '/', 'WelcomeController@index');
Salin selepas log masuk

白名单数组匹配match组合

Route::match(['get', 'post'], '/', function () {
    return view('welcome');
});
Salin selepas log masuk
Route::match(['get', 'post'],'/', 'WelcomeController@index');
Salin selepas log masuk

重定向路由

Route::redirect('/here',  '/404',  404);
Salin selepas log masuk

二、参数路由

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
});
Salin selepas log masuk


正则方式的参数路由

Route::get('page/{id}', function ($id) {    
    return '页面ID: ' . $id;
})->where('id', '[0-9]+');
Salin selepas log masuk
Route::get('page/{name}', function ($name) {    
    return '页面名称: ' . $name;
})->where('name', '[A-Za-z]+');
Salin selepas log masuk
Route::get('page/{id}/{slug}', function ($id, $slug) {    
    return $id . ':' . $slug;
})->where(['id' => '[0-9]+', 'slug' => '[A-Za-z]+']);
Salin selepas log masuk


三、路由别名(以user.profile进行访问)

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
})->name('user.profile');
Salin selepas log masuk

// 访问方式:

<a href="{{ route(&#39;user.profile&#39;, [&#39;id&#39; => 100]) }}">
Salin selepas log masuk


四、路由分组

Route::group([], function () {     
    Route::get(&#39;hello&#39;, function () {         
        return &#39;Hello&#39;;     
    });     
    Route::get(&#39;world&#39;, function () {         
        return &#39;World&#39;;     
    });
});
Salin selepas log masuk

五、路由分组、中间件(2中方式-一般使用第二种)

Route::middleware(&#39;auth:api&#39;)->group(function () {    
    Route::get(&#39;dashboard&#39;, function () {        
        return view(&#39;dashboard&#39;);    
    });    
    Route::get(&#39;account&#39;, function () {        
        return view(&#39;account&#39;);    
    });
});
Salin selepas log masuk

或者

Route::group([&#39;middleware&#39; => &#39;auth:api&#39;], function () {     
    Route::get(&#39;dashboard&#39;, function () {         
        return view(&#39;dashboard&#39;);     
    });     
    Route::get(&#39;account&#39;, function () {         
        return view(&#39;account&#39;);     
    });
});
Salin selepas log masuk

六、路由路径前缀

Route::prefix(&#39;api&#39;)->group(function () {    
    Route::get(&#39;/&#39;, function () {        
    // 处理 /api 路由    
    })->name(&#39;api.index&#39;);   
     
    Route::get(&#39;users&#39;, function () {        
    // 处理 /api/users 路由    
    })->name(&#39;api.users&#39;);
});
Salin selepas log masuk

七、路由子域名

Route::domain(&#39;{account}.blog.test&#39;)->group(function (){    
    Route::get(&#39;/&#39;, function ($account) {        
        //TODO    
    });    

    Route::get(&#39;user/{id}&#39;, function ($account, $id) {        
        //TODO    
    });
});
Salin selepas log masuk

八、路由命名空间

Route::namespace(&#39;Admin&#39;)->group(function() {     
    // App\Http\Controllers\Admin\AdminController     
    Route::get(&#39;/admin&#39;, &#39;AdminController@index&#39;);
});
Salin selepas log masuk

路由命名空间、前缀、分组、参数、别名组合

// 路由命名+路径前缀

Route::name(&#39;user.&#39;)->prefix(&#39;user&#39;)->group(function () {    
    Route::get(&#39;{id?}&#39;, function ($id = 1) {        
        // 处理 /user/{id} 路由,路由命名为 user.show        
        return route(&#39;user.show&#39;);    
    })->name(&#39;show&#39;);  
      
    Route::get(&#39;posts&#39;, function () {        
        // 处理 /user/posts 路由,路由命名为 user.posts    
    })->name(&#39;posts&#39;);
});
Salin selepas log masuk


九、访问当前路由

$route  = Route::current();
$name   = Route::currentRouteName();
$action = Route::currentRouteAction();
Salin selepas log masuk

十、清除路由缓存

php artisan route:cache
Salin selepas log masuk

十一、删除路由缓存

php artisan route:clear
Salin selepas log masuk


总结:

通过以上的学习总结,我们已经学会了Laravel的路由定义、访问方式,而且路由非常的方便,对于新手来说,学习起来非常的方便,也非常容易学会。

Atas ialah kandungan terperinci 一篇文章学会Laravel框架所有基础路由知识. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
1
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!