Laravel – DB update

Update dữ liệu

Chúng ta có thể update dữ liệu Database với phương thức update() của DB facade. Cấu trúc như bên dưới.

Cấu trúc int update(string $query, array $bindings = array())
Thuộc tính $query(string) : Câu truy vẫn vào CSDL

$bindings(array) : Giá trị truyền vào câu query

Kết quả int
Mô tả Update dữ liệu vào Database

Ví dụ

Step 1 : Tạo controller StudUpdateController bằng lệnh command bên dưới.

php artisan make:controller StudUpdateController

Step 2 : Thêm code sau vào controller StudUpdateController vừa mới tạo.
app/Http/Controllers/StudUpdateController.php

<?php

namespace App\Http\Controllers;
use DB;
use Illuminate\Http\Request;

class StudUpdateController extends Controller
{
    public function index(){
        $users = DB::select('select * from student');
        return view('stud_edit_view',['users'=>$users]);
    }
    public function show($id) {
        $users = DB::select('select * from student where id = ?',[$id]);
        return view('stud_update',['users'=>$users]);
    }
    public function edit(Request $request,$id) {
        $name = $request->input('stud_name');
        DB::update('update student set name = ? where id = ?',[$name,$id]);
        echo "Record updated successfully.<br/>";
        echo '<a href = "/edit-records">Click Here</a> to go back.';
    }
}

Step 3 : Tạo 1 View resources/views/stud_edit_view.blade.php với nội dung bên dưới.

<html>
   <head>
      <title>View Student Records</title>
   </head>
  
   <body>

      <table border = "1">
         <tr>
            <td>ID</td>
            <td>Name</td>
            <td>Edit</td>
         </tr>
         @foreach ($users as $user)
         <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
            <td><a href = 'edit/{{ $user->id }}'>Edit</a></td>
         </tr>
         @endforeach
      </table>

   </body>
</html>

Step 4 : Tạo thêm 1 view khác là resources/views/stud_update.php với code sau:

<html>

   <head>
      <title>Student Management | Edit</title>
   </head>

   <body>
      <form action = "/edit/<?php echo $users[0]->id; ?>" method = "post">
         <input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">

         <table>
            <tr>
               <td>Name</td>
               <td>
                  <input type = 'text' name = 'stud_name' 
                     value = '<?php echo$users[0]->name; ?>'/>
               </td>
            </tr>
            <tr>
               <td colspan = '2'>
                  <input type = 'submit' value = "Update student" />
               </td>
            </tr>
         </table>

      </form>

   </body>
</html>

Step 5 : Thêm code sau vào routes/web.php.

Route::get('edit-records','StudUpdateController@index');
Route::get('edit/{id}','StudUpdateController@show');
Route::post('edit/{id}','StudUpdateController@edit');

Step 6 : Vào http://localhost:8000/edit-records.

Step 7 : Click vào link edite, sẽ chuyển đến trang sửa nội dung.

Step 8 : Điền nội dung cần sửa vào input và nhấn update student để lưu lại