iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0

終於來到了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名稱了,但千萬注意就是只有一個的情況下才能使用喔!


上一篇
DAY9: Artisan 指令列續集
下一篇
DAY11: view
系列文
從0開始-30天摸索laravel31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言