iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0
自我挑戰組

來用Laravel做點什麼吧系列 第 8

D8 Controller

之前我們講過Laravel中的Route,Route除了用來回傳相應View之外,我們也可以使用Controller來做回應。

當有請求送來時,我們可能不只是回應一個頁面給對方就好,可能還有一系列的行為,Controller就是用來組織這些互相關聯的行為。

雖然也可以手動自己新增Controller,不過在Artisan中已經有內建指令可以直接幫你生成Controller了(所以說有Artisan真的會比較方便呢):

php artisan make:controller YourController

這個指令會直接在app/HTTP/Controllers資料夾中生成符合格式的Controller PHP檔。

新生成的Controller文件:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
    //
}

先來做點比較簡單的,來印出一段文字:

class TestController extends Controller
{
    public function show()
    {
        return "S'il faut mourir, autant vivre à en crever";
    }
}

然後在web.php中新增路由導向到我們剛才生成的Controller:

Route::get('/Test', 'TestController@show');

打開瀏覽器就能看到我們剛才寫好的文字:)

另外也可以處理參數傳遞:

// firstpage.blade.php
<div>
    <h1>Hello, {{ $name }}.</h1>
</div>
// TestController.php
public function hi($name) {
    return view('firstpage', array('name' => $name));
}
// web.php
Route::get('/Test/{name}', 'TestController@hi');

另外還有一種Resource Controller,可以把CRUD的路由都指向同一個Controller,要新增的話可以使用參數:

php artisan make:controller MyController --resource

生成出來的文件就會把可能需要的方法都先幫你寫出來,只需要按照註解去改程式碼就好。(Artisan真的很方便)


上一篇
D7 所、所以Artisan是誰?!
下一篇
D9 長官,聯絡上資料庫了!
系列文
來用Laravel做點什麼吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言