Laravel的路由(Route)與控制器(Controller)(二)
控制器(Controller)
當我們在routes/web.php寫好路由(Route),
輸入網址之後,
路由就會去找要交給哪個控制器來處理.
譬如昨天我們寫的
Route::get('/user/auth/sign-up', 'UserAuthController@signUpPage');
當我們輸入 網址/user/auth/sign-up
的時候,
路由就會找到UserAuthController底下的signUpPage方法來處理,
然後做相應的動作,
控制器可以回傳View畫面,
也可以回傳Json字串等,
我們也可以在方法中加入編號,
這個我們在之後有用到的時候會再說明.
所有的控制器都放在app/Http/Controller目錄中
預設會有一個Controller.php的檔案,
其他的Controller都是我們自己加上的,
如果專案比較小可以把所有的Controller放在app/Http/Controller/這一個目錄底下,
但是如果專案比較大,
常常就需要分好幾個資料夾來放我們的控制器(Controller),
至於要怎麼分,
每個人有每個人的習慣,
沒有一定的規範,
當然有時候公司內部為了方便管理會有公司內部的規定,
這時候我們就按照公司內部的規定來執行就好了.
我們現在把HomeController.php改成這樣:
<?PHP
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class HomeController extends Controller
{
//首頁
public function indexPage()
{
//省略
}
}
?>
可以看到最前面有一行 namespace App\Http\Controllers;
,
這個是命名空間的宣告,
根據Laravel的規範需要用目錄來命名,
當我們需要使用到其他檔案的時候,
就需要連同命名空間一起呼叫,
譬如 use App\Http\Controllers\Controller;
,
我們就可以使用App\Http\Controllers\Controller.php的功能
模板(views)
Laravel方便的地方就是使用模板,
所有的模板都放在resources/views目錄底下,
名稱必須命名為*.blade.php,
否則無法正確使用.
我們把剛剛的App/Http/Controllers/HomeController.php修改如下:
<?PHP
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class HomeController extends Controller
{
//首頁
public function indexPage()
{
return view('welcome');
}
}
?>
當我們輸入首頁的網址的時候就會去讀resources/views/welcome.blade.php這個檔案,
現在我們輸入 http://localhost:8915/ 就會看到以下內容,
在這裡輸入的Port號是要根據我們在Server上的設定.
我是直接拿Laravel預設畫面來用,
表示我們已經成功呼叫模板了.