學渣也要搞 laravel(2)—— HTTP路由[1]篇

來源:互聯網
上載者:User

標籤:

    前幾天忙了,然後快兩個星期沒有發部落格。今天正式迴歸。哈哈

1.  路由

    說到路由當時學的時候給我疑惑了幾天、。沒有仔細看文檔。然後一臉蒙蔽的去用 postman[Google外掛程式] 測試路由方法。然後就很奇怪 composer 下載下來的 laravel 為什麼在 postman 裡面測試的只有 get 路由方法能使用,類似這樣 : 

    laravel 的路由在app/Http/routes.php 這個檔案(中文文檔:點我)

  在routes.php裡面添加了一個get方法 

1 Route::get(‘test‘,function(){2     return ‘123‘;3 });

然後在postman裡面測試的時候能輸出 123;

  然後我再次添加post方法。發現在postman裡面測試的時候會報錯。

1 Route::post(‘/test‘,function(){2     return 123;3 });

  

  後來加了laravel學院的群問了下才知道,(laravel 5.2.26之後的所有路由預設走web中介軟體,所以沒有token肯定訪問不了) 通俗的說就是防止CSRF(跨站)攻擊。如果想要用postman測試的話就要去關閉CSRF。要麼就用表單測試避免攻擊。我就用官方文檔給的表單測試這些路由...

 

 1 Route::get(‘test‘,function(){ 2     $csrf_field = csrf_field(); 3     $html = <<<GET 4         <form method="POST" action="/test"> 5             {$csrf_field} 6             <input type="submit" value="test"/> 7         </form> 8 GET; 9     return $html;10 });11 Route::post(‘test‘,function(){12     return ‘Success‘;13 });

 

 

 

這個就能在瀏覽器中看到了(忽略 標籤 ,懶得打馬了)

  metch / any 路由都差不多。然後其他的幾個路由我也就不去測試了。表單傳遞方式只有get和post了。如果想看其他路由的話。目前只知道--- 去關閉csrf 用postman看效果。 如何關閉上面的 csrf 連結有介紹。或者 app/Http/Kernel.php 注釋掉第31行 

1 \App\Http\Middleware\VerifyCsrfToken::class, //注釋我

 

 

 

1.1.  路由參數

1 Route::get(‘posts/{post}/comments/{comment}‘, function ($postId, $commentId) {2     return $postId.$commentId;3 });

 

 

選擇性參數:

1 Route::get(‘posts/{post}/comments/{comment?}‘, function ($postId, $commentId=null) {2     return ‘$postId----‘.$postId.‘ $commentId------‘.$commentId;3 });

   這個意思差不多就是以postId 接收{post}參數。然後選擇性參數comment 可以為空白或者不為空白。然後輸出對應的參數:下面這個例子就是把這個可選的參數沒有給他設定值。然後輸出的時候就不會有參數出來。若設定了即反之。{post}不能設定為選擇性參數,如果設定了的話,便報錯、因為它真的不知道 comments 後面的是不是值。

 

 

正則約束參數:

1 Route::get(‘user/{id}/{name}‘, function ($id, $name) {2   return $id.‘---‘.$name;3 })->where([‘id‘ => ‘[0-9]+‘, ‘name‘ => ‘[a-z]+‘]);

 

 這個輸入的參數 id 必須為數字。name 必須為 a-z 或者多個 a-z+ --- 即正則約束這倆參數。

輸出:

部分內容參考:Laravel 5.2 中文文檔 

學渣也要搞 laravel(2)—— HTTP路由[1]篇

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.