首頁  >  文章  >  後端開發  >  php框架laravel學習 三 (基本功能)

php框架laravel學習 三 (基本功能)

WBOY
WBOY原創
2016-08-10 08:48:35944瀏覽

一、路由

路由其實就是瀏覽器裡用來發http請求的指令,很多api的功能其實就是透過URL來發送請求的。

http請求方式和回應是基礎課,但是內容不少,要先研究好。

Laravel的路由和其他框架有所不同,需要手動逐個定制,好處在於功能強大,靈活,易於管理。

3種基本方式

第一種
就是Route::get('路徑', function(){…});這種形式,你可以根據需要把get換成post, put, delete等各種請求方式;這種寫法最常見,也是最推薦的;

路由後面可以用閉包(匿名的函數)直接執行一段程式碼,這個是很多框架沒有的,實際中不太可能把業務碼寫到這個小小的閉包中,而是放到控制器中,因此最常見的寫法是Route::get('路徑', xxxController@action);

路由的閉包函數最多的用處是用來測試某個功能或程式碼,即寫即用,非常方便,我通常會保留一個Route::get('test', function(){…});做測試。

專案中往往路由很多,一個一個寫有些人覺得慢了。有些CRUD是非常標準化的,於是就有了所謂的Restful路由(控制器)。

第二種:
Route::resource('posts','PostsController');

寫一個這樣的路由,其實產生7個帶路由名稱的路由,這7個路由的路徑形式是按照restful標準來製定的,所以有又叫做rest路由;但這個路由有個限制,就是在對應的控制器中,除了rest對應的7個方法外,其他方法如果要訪問,要在Restful路由前面定義一個路由訪問它。

第三種:
叫做控制路由,又叫隱式路由:
Route::controller(‘foo’, ‘FooController’);

這種寫法很靈活,用魔術方法在方法名稱上設定http請求方式,這對於一些api式的請求很方便。

給隱式路由取名字需要注意,因為它不是逐個寫路由的,方法如下:

<code>Route::controller(<span>'users'</span>, <span>'UserController'</span>, [

    <span>'anyLogin'</span> => <span>'user.login'</span>,

]);</code>

前面是方法名,後面是路由名稱;

路由名稱
話說回來,為路由命名有什麼用呢?有用,因為路由(url)會在大量的視圖檔案中使用,有了路由名稱,就可以解耦,可以任意修改url,而不會影響視圖中的url;

路由參數
我們通常說的路由參數,一般看起來像這樣index.php?user=ooo&psw=xxx; 但在Laravel看來,這種明文的方式比較醜且不安全。所以它的寫法就成了這樣:

<code>Route::get(<span>'user/{name}'</span>, <span><span>function</span><span>(<span>$name</span>)</span>
{</span><span>//可以直接使用$name</span>
})</code>

這個參數值如果是字串,不能跟其他路由名稱一樣,系統會優先路由,這樣就取不到值了。
關於取值這塊,首先其實是可以直接傳值,另外也可以透過物件方法取值,官網說明比較坑,ror ?>inputut id ) 版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 以上就介紹了php框架laravel學習 三 (基本功能),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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