Итак, у меня есть эта таблица со столбцом с именем «status_request». Когда пользователь заполняет форму и отправляет ее в БД, она автоматически заполняется «0», и если администратор утвердил данные (данные будут отображаться в виде таблицы с несколькими утверждениями кнопок), нажав кнопку подтверждения, столбец «status_request» будет заполнен цифрой «1». Кажется, я не могу заставить его работать в моем коде, он не вызывает никаких ошибок, но столбец не обновляется.
это контроллер «одобрить» (когда администратор нажал кнопку одобрения)
public function approve($id){
$req = DB::table('lr2')->find($id);
$check = DB::table('lr2')->where('status_request')->first();
if ($check=='0'){
DB::table('lr2')->update([
'status_request' => '1'
]);
return view('dashboard',compact('req'));
return redirect()->back()->with('message', 'Approved');
}
}
маршруты / web.php
Route::get('/dashboard/approve/{id}', 'App\Http\Controllers\DashboardController@approve')->name('dashboard.approve');
просмотры / dashboard.blade.php
<button type = "button" class = "mr-3 text-sm bg-blue-500 hover:bg-green-700 text-white py-1 px-2 rounded focus:outline-none focus:shadow-outline"><a href = {{ url('/dashboard/approve',$m->id) }}>APPROVE</a></button>






Ваш код кажется немного сложным, блок IF пытается обновить статусы всех записей, что кажется немного странным.
Если вы хотите обновить поле status_field отдельной записи, попробуйте следующее:
public function approve($id){
// Get the record.
$req = DB::table('lr2')->find($id);
// Assign value 1 to the status_request field.
$req->status_request = 1;
// Attempt to update the status.
if ($req->save()) {
// Return with a success message.
return redirect()->back()->with('message', 'Approved');
}
// Return with an error message about the failure.
return redirect()->back()->with('message', 'A problem occured while updating the status');
}