首頁 >後端開發 >php教程 >laravel的路由(router)圖文詳解

laravel的路由(router)圖文詳解

不言
不言原創
2018-07-13 14:15:199227瀏覽

這篇文章主要介紹了關於laravel的路由(router)圖文詳解,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

laravel的路由(router)圖文詳解

laravel基礎的路由:

在/routes/web.php裡面, 寫一個

Route::get('/hello',function(){
    return 'hello , can you hear me ?';
});

接著就能在瀏覽器裡

 laravel的路由(router)圖文詳解

postman也可以直接看到

 laravel的路由(router)圖文詳解

##原文:

 

laravel的路由(router)圖文詳解

我們先試試看呼叫控制器:

Route::get('/menu','Menu\MenuIndexController@index');

這就是直接get請求傳送about, 呼叫StaticPagesController控制器的about方法

laravel的路由(router)圖文詳解

<?php
namespace App\Http\Controllers\Menu;//修改命名空间
use App\Http\Controllers\Controller;//引用基础controller
use Illuminate\Http\Request;
class MenuIndexController extends Controller
{
    //
    public function index(){
        return view(&#39;menu/index&#39;);
    }
}

跳到view:

 

laravel的路由(router)圖文詳解

@extends(&#39;layouts.default&#39;)
@section(&#39;content&#39;)
<h5>菜单页</h5>
@stop
@section(&#39;title&#39;,&#39;菜单页&#39;)

瀏覽器效果:

 

laravel的路由(router)圖文詳解

定義在routes/ api.php檔案中的路由經由app/Providers/RoutesServiceProvider的處理被嵌套在一個路由中間件組中, 在這個路由中間件組中, 所有路由會被自動添加/api前綴, 所以你不需要再到路由檔案中為每個路由手動新增, 你可以透過編輯RouteServiceProvider類別來修改路由前綴以及其他的路由中間件組選項;

laravel的路由(router)圖文詳解

這一坨就別去改動了, 底層的東西改了不知道會發生什麼神奇的事情;

有時候還需要註冊一個路由響應多種HTTP 請求動作—— 這可以透過match 方法來實現。或者,可以使用any 方法註冊一個路由來回應所有HTTP 請求動作:

Route::match([&#39;get&#39;,&#39;post&#39;],&#39;returnReturn&#39;,&#39;Menu\MenuIndexController@returnReturn&#39;);
Route::any(&#39;returnAny&#39;,&#39;Menu\MenuIndexController@returnAny&#39;);

路由重定向:

如果需要定義一個重定向到其他URI路由, 可以使用Route::redirect

Route::redirect(&#39;motherfucker&#39;,&#39;menu&#39;,301);

瀏覽器輸入motherfucker就會蹦到menu;

301是狀態碼,預設301,原文:

 

laravel的路由(router)圖文詳解

#當然還有需要直接跳到視圖層(view), 然後其餘資料(maybe whole data)都由api提供獲取, 那麼直接跳到視圖的路由是這麼玩的:

Route::view( 'staticView','static_pages/staticView');

注意, 這裡的static_pages/staticView是用的正斜線,  反斜線會報錯說can not found static_pages\staticView;

laravel的路由(router)圖文詳解

laravel的路由(router)圖文詳解

#靜態頁面位於:

 

瀏覽器直接存取效果:

 

laravel的路由(router)圖文詳解當然還有另外一種騷操作, 就是Route::view傳遞第三個參數, 用於視圖中的資料渲染

Route::view(&#39;staticViewData&#39;,&#39;static_pages/staticViewData&#39;,[&#39;name&#39;=>&#39;jack&#39;,&#39;like&#39;=>&#39;money&#39;]);

傳遞過去的陣列自然是['name'=>'jack','like'=>'money' ], 

頁面上用法:

@extends(&#39;layouts.default&#39;)
@section(&#39;content&#39;)
<h2>this is static view data</h2>
{{$name}} likes {{$like}}
 
@stop()
@section(&#39;title&#39;,&#39;static view data&#39;)

然後瀏覽器效果:

 

當然了你要皮, 那自然是不可以的:

Route::view(&#39;staticViewData&#39;,&#39;static_pages/staticViewData&#39;,[&#39;name&#39;=>&#39;jack&#39;,&#39;like&#39;=>&#39;money&#39;,&#39;jump&#39;=>&#39;<a href="/about">&#39;]);

原始碼會把標籤給當作普通文字解析, 前後加上以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網! 相關課程推薦:

最新laravel商城實戰影片教學

######### 全方位解讀Laravel框架及實戰影片教學##### ########輕鬆學會Laravel-基礎篇#######

以上是laravel的路由(router)圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn