У меня возникла следующая проблема: я создаю проверку сотрудника для регистрации вашего въезда и выезда, я занимаю углерод для получения даты и времени, ранее по школьным правилам я внес изменения в регистрацию процедурой, но это В первый раз, когда я занимаюсь ELOQUENT для выполнения этой операции, он отправляет мне реестр для изменения, и все в порядке, проблема возникает, когда я даю его отправить, и реестр дублируется, создавая новый с дата отправления, и я не знаю почему, я прилагаю код моего контроллера и мой маршрут
public function edit(checadorEmpleado $checadorEmpleado, $id)
{
$salida = checadorEmpleado::find($id);
return view('checadorempleado.edit',['salida'=>$salida]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\checadorEmpleado $checadorEmpleado
* @return \Illuminate\Http\Response
*/
public function update(Request $request, checadorEmpleado $checadorEmpleado)
{
$date5=carbon::now();
$date6=$date5->Format('Y-m-d h:i:s A');
$checadorEmpleado->id = $request['id'];
$checadorEmpleado->empleado_id = $request['empleado_id'];
$checadorEmpleado->hora_entrada= $request['hora_entrada'];
$checadorEmpleado->hora_salida = $date6;
$checadorEmpleado->save();
return redirect('checador');
}
МАРШРУТ Route::resource('checador','ChecadorEmpleadoController');
Route::post('altacheck','ChecadorEmpleadoController@store')->name('altacheck');
Route::get('/modificachecador/{id}','ChecadorEmpleadoController@edit');
Route::POST('modificachecador','ChecadorEmpleadoController@update')->name('modificachecador') ;
Я вижу какую-то неосновательность в cГіdigo.
Во-первых, давайте видеть mГ©todo edit()
и Ваш соответствующий маршрут. В маршруте, у тебя есть один parГЎmetro {id}
, что estГЎ ok для, когда например, ты хочешь издать модель с id => 1
, ты соглашаешься на uri asГ - /modificachecador/1
.
Route::get('/modificachecador/{id}','ChecadorEmpleadoController@edit');
, Но в mГ©todo edit драйвера, estГЎs делая инъекцию 2 parГЎmetros, $checadorEmpleado
и $id
.
public function edit(checadorEmpleado $checadorEmpleado, $id)
{
$salida = checadorEmpleado::find($id);
return view('checadorempleado.edit',['salida'=>$salida]);
}
Это не имеет смысл, если у маршрута есть один parГЎmetro, и застает меня, что ты estГ© функционируя, так как mГ©todo только deberГ, - чтобы быть asГ-:
public function edit($id)
{
$salida = checadorEmpleado::find($id);
return view('checadorempleado.edit',['salida'=>$salida]);
}
Потом давайте видеть mГ©todo update()
. Проблема, кажется, с одной стороны, в маршруте
Route::POST('modificachecador','ChecadorEmpleadoController@update')->name('modificachecador');
, так как у него нет parГЎmetro {id}
, но в mГ©todo update()
из драйвера, ты пробуешь делать инъекцию этому parГЎmetro с checadorEmpleado $checadorEmpleado
public function update(Request $request, checadorEmpleado $checadorEmpleado)
{
$date5=carbon::now();
$date6=$date5->Format('Y-m-d h:i:s A');
$checadorEmpleado->id = $request['id'];
$checadorEmpleado->empleado_id = $request['empleado_id'];
$checadorEmpleado->hora_entrada= $request['hora_entrada'];
$checadorEmpleado->hora_salida = $date6;
$checadorEmpleado->save();
return redirect('checador');
}
Тогда, хотя не sГ© cГіmo estГЎs посылая request в этот маршрут, я вижу, по крайней мере, двумя возможностями:
public function update(Request $request)
{
$date5=carbon::now();
$date6=$date5->Format('Y-m-d h:i:s A');
$checadorEmpleado = checadorEmpleado::find($request['id']);
$checadorEmpleado->empleado_id = $request['empleado_id'];
$checadorEmpleado->hora_entrada= $request['hora_entrada'];
$checadorEmpleado->hora_salida = $date6;
$checadorEmpleado->save();
return redirect('checador');
}
Route::POST('modificachecador/{id}','ChecadorEmpleadoController@update')->name('modificachecador');
И в mГ©todo драйвера inyГ©ctasela как зависимость, чтобы получать модель, которая должна изменять
public function update(Request $request, $id)
{
$date5=carbon::now();
$date6=$date5->Format('Y-m-d h:i:s A');
$checadorEmpleado = checadorEmpleado::find($id);
$checadorEmpleado->empleado_id = $request['empleado_id'];
$checadorEmpleado->hora_entrada= $request['hora_entrada'];
$checadorEmpleado->hora_salida = $date6;
$checadorEmpleado->save();
return redirect('checador');
}
Получив формуляр уже не recibirГ-схватывай инстанцию checadorEmpleado, ademГЎs он не фигурирует как parГЎmetro в твоем файле маршрутов, harГ© adecuacions в тебя cГіdigo
public function update(Request $request)
{
$data=$request->only(['empleado_id', 'hora_entrada']);
$data['hora_salida'] = Carbon::now()->format('Y-m-d h:i:s A');
checadorEmpleado::where('id', $request->get('id'))
->update($data)
return redirect('checador');
}
Уже я нашел ошибку, как кажется, у него были какие-то ошибки в функции update, так как он был как save()
, но я это сменил на update()
, также, что в начало моих переменных я был должен делать метод find()
приложенным мой код где hize исправления:
public function update(Request $request, checadorEmpleado $checadorEmpleado)
{
$date5=carbon::now();
$date6=$date5->Format('Y-m-d h:i:s A');
$checadorEmpleado = checadorEmpleado::find($request['id']);
//$checadorEmpleado->id = $request['id'];
$checadorEmpleado->empleado_id = $request['empleado_id'];
$checadorEmpleado->hora_entrada= $request['hora_entrada'];
$checadorEmpleado->hora_salida = $date6;
$checadorEmpleado->update();
return redirect('checador');
}