laravel part 7

這也是最後一個章節了,將會介紹到

  1. 顯示帳號資訊
  2. 修改帳號資訊
  3. 刪除帳號

顯示帳號資訊

開啓AccountController.php,找到show這個方法,修改的code如下

AccountController.php
1
2
3
4
5
6
7
public function show($id)
{
$account = User::find($id);
$view = View::make('account.show')
->with('account', $account);
return $view;
}

這邊要搜尋帳號也很簡單,使用User::find($id)就可以根據ID找到對應的帳號資料,也不用特地去寫些sql語法,但這應該只單存這種簡單的情況下使用吧!如果有多個Table要Join,或是有些特殊的欄位條件要篩選應該就沒這容易了。

最後將這個搜尋結果塞到view裡面使用,所以接下來就是編輯view的部分;開啓app/views/account/show.blade.php,輸入的code如下

這邊很簡單你要顯示的欄位資料就使用->這樣的方式操作,example: $account->email

修改帳號資訊

編輯會呼叫到AccountController.phpedit方法,code如下

AccountController.php
1
2
3
4
5
6
7
8
public function edit($id)
{
$account = User::find($id);

$view = View::make('account.edit')
->with('account', $account);
return $view;
}

這邊跟顯示的地方並沒有什麼不同!接著就來看app/views/account/edit.blade.php

這邊大致上跟新增很像!唯一比較不一樣的是`{{ Form model }}`(可以看到註解1的地方),這邊要指定更新的方法,account.update就是呼叫AccountControllerupdate方法,並帶入$account->id帳號ID;還有設定'method' => 'PUT',這是因為要符合restful

接下來就來寫更新資料的update方法吧!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
public function update($id)
{
$rules = array(
'email' => 'required|email',
'username' => 'required',
'name' => 'required'
);

$validator = Validator::make(Input::all(), $rules);

if($validator->fails()) {
return Redirect::to('account/' . $id . '/edit')
->withErrors($validator)
->withInput(Input::all());
}
else {
$account = User::find($id);
$account->email = Input::get('email');
$account->username = Input::get('username');
$account->name = Input::get('name');
$account->save();

Session::flash('message', '修改成功');
return Redirect::to('account');
}
}

這邊幾乎都跟建立資料時一樣,我就不再贅述了。

刪除帳號

前一個章節已經建立好了刪除的連結,但是尚未在controller內寫方法,其實也很簡單,刪除預設會去呼叫destroy這個方法,所以找到AccountController.php內的destroy,code如下

AccountController.php
1
2
3
4
5
6
7
8
9
public function destroy($id)
{
$account = User::find($id);
$account->delete();

Session::flash('message', '刪除成功');
return Redirect::to('account');
}

直接看code就可以理解!找到該筆帳號(根據ID),最後delete!很簡單吧…