Laravel CRUD dengan Query Builder
Koneksikan project laravel dengan database dengan mengatur .env
Buat controller nya php artisan make:controller nama_controllernya
Web Route
/post
GET
PostController@index
menampilkan list data pertanyaan-pertanyaan (boleh menggunakan table html atau bootstrap card)
/post/create
GET
PostController@create
menampilkan form untuk membuat pertanyaan baru
/post
POST
PostController@store
menyimpan data baru ke tabel pertanyaan
/post/{post_id}
GET
PostController@show
menampilkan detail pertanyaan dengan id tertentu
/post/{post_id}/edit
GET
PostController@edit
menampilkan form untuk edit pertanyaan dengan id tertentu
/post/{post_id}
PUT
PostController@update
menyimpan perubahan data pertanyaan (update) untuk id tertentu
/post/{post_id}
DELETE
PostController@destroy
menghapus pertanyaand dengan id tertentu
4. buat databasenya 5. buat table menggunakan migration nama tabel : post
Title
string
–
Body
text
–
Create Data
PostController.php
public function create berfungsi menreturn link menuju resources/views/post/create.blade.php public function store(Request $request) berfungsi mengambil request inputan attibute name pada resources/views/post/create.blade.php
$request->validate([ ‘title’ => ‘required|unique:post’, ‘body’ => ‘required’, ]);
berfungsi melakukan validasi jika title kosong atau title tidak boleh sama dengan data yang telah terinput maka akan menampilkan error dan jika body inputan kosong maka akan menampilkan error
$query = DB::table(‘post’)->insert([ “title” => $request[“title”], “body” => $request[“body”] ]); return redirect(‘/posts’);
berfungsi melakukan insert data pada kolom title dan body berdasarkan request inputan attribute name ‘title’ dan ‘body’ seperti pada sintax sql INSERT INTO post (title, body) VALUES ($request[‘title’], $request[‘body’]); setelah proses insert berhasil maka akan menuju ke URL /post
resources/views/post/create.blade.php
@error(‘body’) <div class=”alert alert-danger”> {{ $message }} </div> @enderror
berfungsi menapilkan error validasinya pada @error body
Tampil Data
PostController.php
$post = DB::table(‘post’)->get(); berfungsi mengambil semua ada pada table post fungsi seperti pada sintax sql “SELECT * FROM post” return view(‘post.index’, compact(‘post’)); berfungsi menreturn menuju resources/views/post/index.blade.php beserta melempar variabel post
resources/views/post/index.blade.php
@forelse adalah fungsi pada blade yang berfungsi melakukan loop foreach dan jika data nya kosong maka akan mereturn @empty
Tampil data berdasarakan id
PostController.php
$post = DB::table(‘post’)->where(‘id’, $id)->first(); Berfungsi memanpilkan data berdasarkan $id yang terdapat pada parameter public funtion show($id) sintax sqlnya SELECT * FROM post WHERE id = $id
resources/views/post/show.blade.php
Update Data
PostController.php
$post = DB::table(‘post’)->where(‘id’, $id)->first(); return view(‘post.edit’, compact(‘post’)); $post berfungsi membuat variabel yang menampung fungsi mengambil semua data berdasarkan paramenter variabel di pada public function edit($id) sintax sqlnya SELECT * FROM post WHERE id = $id dan menreturn menuju resources/views/post/edit.blade.php beserta melempar variabel post
$query = DB::table(‘post’) ->where(‘id’, $id) ->update([ ‘title’ => $request[“title”], ‘body’ => $request[“body”] ]); return redirect(‘/posts’); berfungsi melakukan update pada inputan attribute name title dan body berdasarkan id pada kolom database sintax sql UPDATE post SET title = $request[‘title], body= $request[‘body’] WHERE id = $id
resources/views/post/edit.blade.php
Delete Data
PostController.php
$query = DB::table(‘post’)->where(‘id’, $id)->delete(); berfungsi menghapus data pada table post berdasarkan $id sintax sqlnya DELETE FROM post WHERE id = $id
Last updated
Was this helpful?