前一天我們稍微簡介一下資料夾的結構,談到 routes 這個資料夾放置所有和路由相關的檔案。打開 routes 資料夾,我們看到四個檔案
讓我們可以先玩一下 web.php
看到 laravel 為我們預設了一段
Route::get('/', function () {
return view('welcome');
});
讓我們按照 code 說一下故事:就是有一個 Route 的類別,他可以有一個 Get 的方法,'/'的意思就是不加任何東西,而 function 這一段就是指示當我們到/的時候應該要怎麼做,這個預設範例就是說我們可以 return view('welcome') ,view()這個方法指向 resource 底下的 views 資料夾底下,傳入的字串是前綴詞,因此,他會把 welcome.blade.php 這個檔案傳給瀏覽器讀取。就是我們看到的那樣囉
所以,我們可以如法炮製在 web.php 寫一個
Route::get('hello', function () {
return 'Hello World';
});
然後在你的網址後面加入個/hello,就會看到 Hello World 的字串囉
或許你會問到,我希望傳一些資料給 Laravel 可不可以,當然啦 當然可以囉,就像底下這樣寫
Route::get('/hello/{name}', function ($name) {
return 'Hello ' . $name;
});
神奇吧,在你的{}裡面填入你的名稱,記得後面的 function 也要帶上參數,你就可以帶資料進去了喔!
關於 Route 的部分你可以更多深入參考文件
https://laravel.com/docs/6.x/routing#route-parameters
之後我會講到 RESTFul API 的部分,到那個時候我會在更多的說明有關於這個部分.....
api.php 你發現預設的也是 Route 嗎?
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
middleware 就是一種過濾、防火牆的概念,這個我們之後會再說明,在這裡你可以不用太多著墨,如同剛剛我們可以如法炮製寫一個小範例,如下
Route::get('/hello', function () {
return 'Hello World';
})
api.php 的方式很簡單,就是在指定的字串前面多加一個 api 就好,
如範例就會像是這樣的 url : {domain}/api/hello
就會像第一個舉例回傳 hello world 的字樣囉
我們看到 Laravel 幫我們寫道的預設是
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->describe('Display an inspiring quote');
那麼讓我們在終端機並且移到這個資料夾目錄下使用
$ php artisan inspire
你就看到一句令人激勵的名言,有沒有覺得備感激勵呢?!
然後你可以在下一個指令,在我們剛剛的指令加入 -help
$ php artisan inspire -help
有沒有發現後面 describe 裡面的字串出現在 description 裡面了呢~
好了別光說不練,讓我們也像之前一樣如法炮製一番
加入這段
Artisan::command('helloworld', function () {
$this->comment('Hello World');
})->describe('Display Hello World');
然後存檔後執行
$ php artisan helloworld
然後你就看到Hello World
的字樣囉,關於 command 的部分我們之後會再更多的說明囉~
這個和 Broadcast 有關係,這個以後我們和 Broadcast 之後再一起討論吧,絕對不是說我沒寫過所以沒把握來寫哈哈
之後我們會常常使用到 command line 來產生檔案,這也是 laravel 讓人覺得很方便的地方,可以幫我們把一些檔案製造出來讓我們可以自由發揮,因此之後我會全部整理在這裡讓大家參考,如果之後有遺漏的可以在底下留言或者以後我也會自行補充修改:
關於 route 的指令如下,如果有遺漏我會在補充
1. php artisan route:list //列出目前所有的路由url~
程式碼的部分你可以參考這裏:https://github.com/r567tw/Make-PHP-Great-Again/commit/83e076b690e938d549c29851bd37f8be9423fe3e
謝謝大大分享,目前覺得console.php是比較難理解的!middleware之前寫過不過驚訝api.php那邊可以那樣玩,之前怕壞掉所以都不太敢動laravel設計好的部分只會依樣打code!
勘誤
web.php
Route::get('hello', function () {
return 'Hello World'; \\ <==結尾少了分號就會發生錯誤
});
api.php
Route::get('/hello', function () { \\<===function小括號內多了$name就會發生錯誤
return 'Hello World';
});
感謝, 已修正!