Laravel更新資料


使用DB::update()方法更新記錄。 DB::update()方法的語法如下表中所示。
語法 int update(string $query, array $bindings = array())
引數
  • $query(string) – 在資料庫中執行查詢
  • $bindings(array) – 與查詢系結值
返回值 int
描述
在資料庫上執行一個更新語句

範例

第1步- 執行以下命令來建立一個名為 StudUpdateController 的控制器。
php artisan make:controller StudUpdateController
第2步 - 成功執行後,您會收到以下輸出 -

第3步 - 將以下程式碼複製到檔案 - app/Http/Controllers/StudUpdateController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

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 "更新記錄成功.<br/>";
      echo '<a href = "/edit-records">點選這裡</a> 返回';
   }
}
第4步 - 建立一個名為 resources/views/stud_edit_view.blade.php 的檢視檔案,並複製下面的程式碼到此檔案中。

resources/views/stud_edit_view.blade.php

<html>
   <head>
      <title>檢視學生記錄</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 }}'>編輯</a></td>
         </tr>
         @endforeach
      </table>
   
   </body>
</html>
第5步 - 建立一個名為 resources/views/stud_update.php 的另一個檢視檔案,並複製下面的程式碼放入下面的檔案中。

resources/views/stud_update.php

<html>
   
   <head>
      <title>編輯 | 學生管理</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>名字</td>
               <td>
                  <input type = 'text' name = 'stud_name' 
                     value = '<?php echo$users[0]->name; ?>'/>
               </td>
            </tr>
            <tr>
               <td colspan = '2'>
                  <input type = 'submit' value = "更新學生資訊" />
               </td>
            </tr>
         </table>
      
      </form>
   
   </body>
</html>
第6步 - 新增以下行到檔案 - app/Http/routes.php.

app/Http/routes.php

Route::get('edit-records','StudUpdateController@index');
Route::get('edit/{id}','StudUpdateController@show');
Route::post('edit/{id}','StudUpdateController@edit');
第7步 - 請存取以下網址資料庫中更新記錄。

http://localhost:8000/edit-records

第8步 - 輸出結果如下圖所示

步驟9- 點選記錄"編輯"連結,將被重定向到一個頁面,可以編輯特定的記錄。
第10步 - 輸出如下面圖所示。

第11步 - 編輯這條記錄後,會看到一個提示圖如下圖所示。