接下來幾天,會交叉介紹路由(Route)和頁面模板(View/Blade)。幾經思考,這兩者關係十分密切,不太好單獨撰寫。
關於路由(Route),我們曾經在第六天短暫看到過。
<?php
Route::get('/', function () {
return '<h1>Hello</h1>';
});
現在我們看看routes
資料裡面的內容:
我們修改的是web.php
的內容,這也是最主要訂立路由的檔案。api.php
的檔案實際上也不太有差別,不過api.php
底下定義的路由,預設會前置增加api/
的前綴,是設計用於提供HTTP API路由定義的檔案。
瀏覽 http://localhost/ 以後,就會顯示Hello World,如果你嘗試右鍵瀏覽網頁原始碼(view-source:http://localhost/)就會看到<h1>Hello</h1>
。
在回頭看看網址,除了localhost
外,後面的就是路徑/
,認知道這個斜線是很重要的,因為Apache2和Nginx對於結尾斜線的認知有些不同。接著再在wep.php
增加以下入由看看:
use Illuminate\Http\Request;
Route::any('/hello-world/', function () {
return '<h1>Hello, World</h1>';
});
Route::get('/hello', function (Request $request) {
return '<h1>Hello,'.$request->query('name').'</h1>';
});
Route::get('/hello/{name}', function ($name) {
return '<h1>Hello, '.$name.'</h1>';
});
現在瀏覽看看http://localhost/hello-world/ ,字樣會變成 Hello, World。再瀏覽到http://localhost/hello/Daniel 或是 http://localhost/hello?name=Daniel ,就會換看到 Hello, Daniel。
Route後面可以給定方法(any
、post
、get
),然後路徑,在路徑上還可以傳遞參數({name}
)給後面的handler(函數)。
另外handler可以而外接受一個Request類別的參數。Request可以使用->query()
和->input()
方法取得GET或是POST傳遞的資料。
本文同步發表於隨性筆記