changken我個人為甚麼喜歡使用php框架,就是因為框架可以把平常的工作簡化再簡化,也可以把一些程式碼分離來達到分工的概念,以changken先前的幾個專案來講,都習慣把php及html寫在一起,甚至連sql也寫在一起,假設未來我想要把資料庫改成sqlite還mssql之類的話(雖然使用pdo就可以解決問題)、還是想要改layout之類的,由於全部都寫在一起,幾乎是整個專案都要改(每一份php網頁、很痛苦、也很傷眼),但在使用框架之後,一切都可以變得很簡單,我只要簡單寫幾句程式碼就可以達到平常我寫十幾行的效果(感覺是我在推人入坑XD)。
想當然爾,我們第一次寫程式就是要先顯示hello world才能展開新旅程!
所以,我們要先打開「routes/web.php」這個檔案,你會先看到以下的程式碼(註解省略之):
Route::get('/', function () { return view('welcome'); });
等等,這是啥呀?為什麼我都看不懂???
不用擔心!我來打個比方,路由就好像是一個網址分配器的概念,透過路由來達成頁面顯示等等等,可能是傳統的php網頁並沒有這個概念,所以會比較難以理解。
所以我就在其下方添加:
Route::get('/hello-world', function () { return 'hello world!'; });
寫好後,我們就可以進入以下網址:「http://localhost/test/public/hello-world」,它就會顯示:
hello world!
為什麼為我要特別標註「public」這個資料夾呢?
那是因為laravel不希望一般的使用者看到框架的「核心」,因而來增加安全性,所以我們可以把網站根目錄指到「public」資料夾。
那麼網址就會變成「http://localhost/hello-world」。
那如果我要在網址中帶入參數的話,那要怎麼辦呢?
不用擔心,只需要把以上的程式碼改成:
Route::get('/hello-world/{name}', function ($name) { return 'hello world!' . $name; });
你只要在網址列輸入 http://localhost/test/public/hello-world/bababa,它就會顯示:
hello world! bababa
但是如果你沒有輸入的話就會跳出很醜的例外錯誤頁面。
所以我們就把原本的程式碼改一下:
Route::get('/hello-world/{name?}', function ($name = 'test') { return 'hello world!' . $name; });
這樣就不用一定要給 $name 變數值了!
不過你不會有疑問嗎?直接把所有的程式碼寫在route裡好嗎?所以我們就要輸入指令產生一個controller!
php artisan make:controller TestController
就可以在「app/Http/Controllers」資料夾中找到「TestController.php」把它打開!
在TestController class中加入
public function index() { return view('welcome'); }
在「routes/web.php」中把原先的:
Route::get('/', function () { return view('welcome'); });
改成:
Route::get('/', 'TestController@index');
你會發現….沒變!
但此時laravel的http請求就有經過TestController囉!
如此這般就可以達到各自分工的完美節奏!(出問題會比較好除錯)
今天筆記就先到這邊囉,如有錯誤的話,麻煩請各位大大在下方留言,小弟會及時修改~~~
近期留言