kita gak mau berantem sama coding kok, kita cuma bakalan ngelanjutin tutorial kemaren yang part 1 sama part 2. Let's take a step on 'update'.
Pertama-tama, kita akan menampilkan link edit pada tabel yang telah kita buat sebelumnya ketika menampilkan data. Ubah file
listbook.blade.php menjadi sebagai berikut:Pada kode diatas, kita menambahkan@extends('layout') @section('content') <section class="container"> <table class="table"> <tr> <th>Title</th> <th>Author</th> <th>Description</th> <th>Price</th> <th>#</th> </tr> @foreach($booksdata as $book) <tr> <td>{{ $book->title }}</td> <td>{{ $book->author }}</td> <td>{{ $book->description }}</td> <td>{{ $book->price }}</td> <td>{{ link_to_action('BookController@edit', 'edit', array($book->id))}}</td> </tr> @endforeach </table> </section> @stop
link_to_action yang merupakan helper untuk membuat HTML link. Dimana, link tersebut akan mengarah ke method edit pada controller bernama BookController. Jika anda jalankan di browser (dengan membuka route booklist), maka akan muncul error sebagai berikut:
Route::get('book/edit/{id}', 'BookController@edit');
Kemudian, tambahkan action “edit” pada BookController:
public function edit($id)
{
//code
}
Jika, di-klik pada salah satu link yang ditampilkan pada tabel, maka akan muncul halaman kosong pada browser. Untuk mengubah halaman kosong tersebut menjadi halaman edit, ubah fungsi edit yang barusan kita tambahkan menjadi sebagai berikut:
public function edit($id)
{
$book = Book::find($id);
return View::make('editbook')->with('book', $book);
}
Jika, dijalankan lagi maka kali ini bukan halaman kosong yang kita dapatkan, tetapi akan terlihat error. Ini dikarenakan kita belum membuat view bernama editbook. Untuk itu, pada folder app/views buatlah file baru dengan nama editbook.blade.php :
@extends('layout')
@section('content')
<div class='container'>
<h3>Edit book</h3>
{{ Form::open() }}
{{Form::hidden('id', $book->id)}}
{{Form::label('title', 'Title') }}
{{Form::text('title', $book->title , array('class' => 'form-control'))}}
{{Form::label('author', 'Author') }}
{{Form::text('author', $book->author , array('class' => 'form-control'))}}
{{Form::label('description', 'Description') }}
{{Form::textarea('description', $book->description , array('class' => 'form-control'))}}
{{Form::label('price', 'Price') }}
{{Form::text('price', $book->price , array('class' => 'form-control'))}}
{{Form::submit('Update', array('class' => 'btn btn-primary')) }}
{{ Form::close() }}
</div>
@stop
Reload halaman yang menampilkan error tersebut dan kita akan melihat form edit beserta nilai dari masing-masing field.Update
Untuk melakukan update, tambahkan fungsi ‘update’ pada BookController:
public function update()
{
$id = Input::get('id');
$book = Book::find($id);
$book->title = Input::get('title');
$book->author = Input::get('author');
$book->description = Input::get('description');
$book->price = Input::get('price');
$book->save();
}
Dan, jangan lupa untuk menambahkan route baru sebagai berikut:
Route::post('book/update', 'BookController@update');
Setelah itu, pada file editbook.blade.php, ubahlah {{ Form::open()) }} menjadi:
{{ Form::open(array('action' => 'BookController@update')) }}
Nah, sekarang coba deh edit data buku yang sudah dibuat dan klik update.see ya in part 4 gaesss




Tidak ada komentar:
Posting Komentar