laravel part 5

建立新的Controller

這部分主要是介紹樣板使用,主要是可以避免相同的code一再重複,只是要換掉中間的內容!首先我想要建立一個帳號的新增修改刪除的頁面,所以我先建立一個Controller;一樣使用artisan,開啟終端機輸入下列指令:

1
php artisan controller:make AccountController

修改Routes

再來就是加入新的route啦!開啟routes.php,新增的code如下:

routes.php
1
2
// Account
Route::resource('account', 'AccountController');

這樣一來就會幫我們建立好對應的RESTFul

建立新的View

首先我建立一個樣板,這樣大家只要引用他,就可以擁有整個頁面的框架,僅需要各自修改各自的內容即可!

首先我建立的的路徑跟檔案是這樣的:

1
2
3
4
app
⌞ views
⌞ layouts
⌞ base.blade.php

接下在base.blade.php輸入下面的code

需特別留意的是第45行,你會更動的內容都跟這有關係!

接著就是建立各自功能的畫面啦!我的檔案結構如下

1
2
3
4
5
6
7
app
⌞ views
⌞ account
⌞ create.blade.php // 建立
⌞ edit.blade.php // 修改
⌞ list.blade.php // 列表所有帳號
⌞ show.blade.php // 該帳號細部資訊

接著就各自修改這四個檔案吧,很簡單!先舉一個例,先以list.blade.php為例,code如下:

list.blade.php
1
2
3
4
5
@extends('layouts.base')

@section('content')
<h1>List Account</h1>
@stop
  1. @extends(layouts.base)就是引用原本的頁面基本的架構,這樣一來你就不用再寫一堆html header了。
  2. @section('content')跟剛剛的yield('content')是做相呼應的!因此content可由你自己決定,但最後不要忘記加上@stop了。

修改AccountController

最後修改AccountController,各自對應的方法要顯示的view,code如下:

AccountController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php

class AccountController extends \BaseController {

/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$view = View::make('account.list');
return $view;
}


/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$view = View::make('account.create');
return $view;
}


/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}


/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
$view = View::make('account.show');
return $view;
}


/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
$view = View::make('account.edit');
return $view;
}


/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}


/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}

可以注意到View::make()內都是用account.XXXaccount代表的就是account目錄路徑下的各自的檔案。

如果成功的話可以看到這樣的畫面

功能的話…to be continued