終於來到了laravel的controller囉!!!!
建立Controller之前,需要先新增一下Route的內容
到route.php中,新增下面這行
Route::get('customer/{id}', 'CustomerController@customer');
到命令提示視窗中,輸入php artisan make:controller CustomerController
這行指令的意思是建立一個名為CustomerController的Controller檔案
CustomerController.php 的位置是 app->https->controllers
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class CustomerController extends Controller
{
//
}
然後在新增
public function customer($id){
return $id;
}
此時可以在瀏覽器中輸入下列網址來看看效果。
http://localhost:8000/customer/1
由上面的程式碼可以感覺得到這樣的流程
瀏覽器(網址) -> route -> controller
雖然還尚未有M跟V,但是不是有點MVC的味道在了,如果我們在Controller呼叫model 以及return view,就是真正的MVC囉!!!
所以這時候就可能會是下列這樣的情況
瀏覽器(網址) -> route -> controller ->model->controller->view
請原諒我懶得畫圖~
如果在創建的指令,更改為下列php artisan make:controller ProfileController –resource
這樣建立的Controller就會有基礎的CRUD的function可以使用,當然也可以不加–resource,自己依據情況使用囉!!!!
備註:
CRUD分別為Create建立、read讀取、update更新、delete刪除,這四種的資料操作行為,大部分的網站資料/資源都是由這四種行為來實現,所以在資料庫的單元也是常常以先能實現CRUD為首要任務。
例如一個會員系統會有新增會員、讀取會員資料、更新會員狀態、刪除會員。
如果Controller只有一個function 而又懶得命名的話php artisan make:controller ShowProfile –invokable
Route::get('/profile/{id}', ' ShowProfile');
此時在Controller中可以
class ShowProfile extends Controller
{
public function __invoke($id)
{
return $id;
}
}
這樣一來,就不需要特別指定function名稱了,但千萬注意就是只有一個的情況下才能使用喔!