【发布时间】:2021-09-11 05:52:38
【问题描述】:
我正在尝试在我的控制器中使用自定义函数在我的数据库中执行软删除,但出现以下错误。
函数参数太少 App\Http\Controllers\EspecialidadesController::borrarEspecialidad(), 0 传入 D:\xampp\htdocs\SistemaHNF\vendor\laravel\framework\src\Illuminate\Routing\Controller.php 在第 54 行,预期正好是 1
看起来$id 没有达到控制器功能。我将发布控制器、视图和路由的代码。
查看
@extends('layouts.app')
@section('content')
<div class="container">
<h1>Editar Especialidad</h1>
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Register') }}</div>
<div class="card-body">
<form method="post" action="{{ route('especialidades.borrarEspecialidad', $especialidad) }}">
@csrf
@method('PUT')
<div class="form-group row">
<label for="nombre" class="col-md-4 col-form-label text-md-right">{{ __('Nombre') }}</label>
<div class="col-md-6">
<input id="nombre" type="text" readonly class="form-control-plaintext" class="form-control @error('nombre') is-invalid @enderror" name="nombre" value="{{ $especialidad->nombre }}" required autocomplete="nombre" autofocus>
@error('nombre')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-danger">
{{ __('Borrar') }}
</button>
<a class=" button btn btn-primary"href="{{route('especialidades.index')}}">Cancelar</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
控制器
public function borrarEspecialidad($id)
{
var_dump($id);
$especialidad = Especialidades::findOrFail($id);
$especialidad->estado = false;
if ($especialidad->save()) {
return redirect()->route('especialidades.index');
} else {
return redirect()->route('especialidades.borrar');
}
}
路线
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/especialidades/borrar/{nombre}',[EspecialidadesController::class,'borrar'])->name('especialidades.borrar');
Route::put('/especialidades/delete',[EspecialidadesController::class,'borrarEspecialidad'])->name('especialidades.borrarEspecialidad');
Route::resource('/especialidades', EspecialidadesController::class);
Route::get('/gestionarMedicos', [PersonaController::class,'mostrarMedicos'])->name('personaMostrarMedicos');
Route::get('editarMedico',[PersonaController::class])->name('editarMedicos');
我是 Laravel 的新手,而且英语不是我的主要语言,我还没有在互联网上找到我的问题的答案。
【问题讨论】:
-
解决了问题,我发送的参数错误。我需要 {id} 而不是 {nombre}。同样重要的是要记住像我这样的新人在路由中发送参数时不需要使用 $