От автора: сейчас мы разберемся, как обновить запись, используя интерфейс DB, с помощью метода Laravel update. Синтаксис метода update описан в следующей таблице.
Пример
Шаг 1. Выполните следующую команду, чтобы создать контроллер с именем StudViewController.
1 |
php artisan make:controller StudUpdateController --plain |
Шаг 2 – В результате вы должны получить следующее:
Шаг 3 — Скопируйте в файл app/Http/Controllers/ StudUpdateController.php следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 "Record updated successfully.<br/>"; echo '<a href = "/edit-records">Click Here</a> to go back.'; } } |
Шаг 4 — Создайте файл представления с именем resources/views/stud_edit_view.blade.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 |
<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> |
Шаг 5 — Создайте еще один файл представления с именем resources/views/stud_update.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 27 28 29 |
<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> |
Шаг 6 — Добавьте в файл app/Http/routes.php следующие строки.
1 2 3 |
Route::get('edit-records','StudUpdateController@index'); Route::get('edit/{id}','StudUpdateController@show'); Route::post('edit/{id}','StudUpdateController@edit'); |
Шаг 7. Перейдите по следующему URL-адресу, чтобы обновить записи в базе данных. //localhost:8000/edit-records
Шаг 8 – В результате вы должны получить следующее.
Шаг 9 — Нажмите ссылку edit для любой записи, и вы будете перенаправлены на страницу, на которой вы можете редактировать эту конкретную запись.
Шаг 10 – В результате вы должны получить следующее.
Шаг 11 — После редактирования этой записи на экране будет отображено сообщение, как показано на следующем рисунке.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.