Я пытаюсь создать сеть с помощью laravel 9, когда я пытался редактировать данные, он не показывает никаких ошибок и перенаправляет их на панель инструментов без отображения и ошибок и не передает данные в БД. вот мой код контроллера
public function edit($id)
{
// find bidan_id that login
$pasien_id = Auth::guard('pasien')->id();
$pasien = IbuHamil::where('id', $pasien_id)->findOrFail($id);
return view('pasien.data.edit', compact('pasien_id', 'pasien'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, IbuHamil $pasien)
{
// validate request
$request->validate([
'name' => 'required|string',
'nama_suami' => 'string|nullable',
'alamat' => 'string|nullable',
]);
$pasien->update([
'name' => $request->name,
'nama_suami' => $request->nama_suami,
'alamat' => $request->alamat,
]);
return redirect()->route('pasien.dashboard');
}
и вот моя форма edit.blade.php. Я уже пробовал менять метод между put и patch
<form action = "{{ route('data.update', $pasien->id) }}" method = "POST" enctype = "multipart/form-data">
@csrf
@method('put')
<div class = "col-md-6">
<div class = "form-group mb-3">
<label for = "">Nama</label>
<input type = "text" class = "form-control @error('name') is-invalid @enderror" name = "name" value = "{{ $pasien->name }}" placeholder = "Nama Lengkap" required>
</div>
</div>
<div class = "col-md-6">
<div class = "form-group mb-3">
<label for = "">Nama Suami</label>
<input type = "text" class = "form-control @error('nama_suami') is-invalid @enderror" name = "nama_suami" value = "{{ $pasien->nama_suami }}" placeholder = "Nama Suami">
@error('nama_suami')
<div class = "alert alert-danger">{{ $message }}</div>
@enderror
</div>
</div>
<div class = "col-md-12">
<div class = "form-group mb-3">
<label for = "">Alamat</label>
<input type = "text" class = "form-control @error('alamat') is-invalid @enderror" name = "alamat" value = "{{ $pasien->alamat }}" placeholder = "Alamat Lengkap">
@error('alamat')
<div class = "alert alert-danger">{{ $message }}</div>
@enderror
</div>
</div>
<button class = "btn btn-primary" type = "sumbit">Simpan</button>
</form>
а вот мой маршрут
Route::group(['middleware' => ['pasien']], function() {
// route dashboard
Route::get('/dashboard', App\Http\Controllers\Pasien\DashboardController::class)->name('pasien.dashboard');
Route::resource('/data', \App\Http\Controllers\Pasien\DataController::class);
});
и вот мой маршрут: список
GET|HEAD pasien/data ......................data.index › Pasien\DataController@index
POST pasien/data ......................data.store › Pasien\DataController@store
GET|HEAD pasien/data/create ...............data.create › Pasien\DataController@create
GET|HEAD pasien/data/{data} ...............show › Pasien\DataController@show
PUT|PATCH pasien/data/{data} ...............data.update › Pasien\DataController@update
DELETE pasien/data/{data} ...............data.destroy › Pasien\DataController@destroy
GET|HEAD pasien/data/{data}/edit ..........data.edit › Pasien\DataController@edit
Спасибо






По вашему маршруту:
Route::resource('/data',\App\Http\Controllers\Pasien\DataController::class);
Если вы проверите свои маршруты php artisan route:list, вы должны увидеть такие маршруты, как pasien/data/{data}
Вы используете $pasien в методе обновления вашего контроллера. Изменение его на $data будет работать.
Просто убедитесь, что вы используете параметр, указанный в маршруте ресурсов.
Привет, решил? Можете ли вы опубликовать свою
IbuHamilмодель?