удалять реестры таблицы со ссылки с php laravel

У меня есть таблица, которая заносит в список мне реестры моей Базы данных. Рядом с каждым реестром, появляется кнопка, чтобы обновлять и другой, чтобы удалять:

    <table border="1">
  <tr>
<td>ID de Empleado</td>
<td>Nombre</td>
<td>Apellidos</td>
<td>Email</td>
<td>Coste por Hora</td>
<td>Departamento</td>
<td>Foto</td>
<td colspan="2">Opciones</td>
  </tr>
@foreach ($empleado as $emp)
<tr>
  <td>{{$emp->idEmpleado}}</td>
  <td>{{$emp->nombre}}</td>
  <td>{{$emp->apellidos}}</td>
  <td>{{$emp->email}}</td>
  <td>{{$emp->costeHora}}</td>
  <td>{{$emp->departamento}}</td>
  <td>{{$emp->foto}}</td>
  <td><a href="{{route('empleadoVista.edit', $emp->id)}}">Editar</a></td>
  <td><a href="">Eliminar</a></td>
</tr>
@endforeach
</table>

Функция Издавания функционирует верно. То, что я нуждаюсь в том, чтобы узнать, так это как удаление реестра кликая прямо в ссылке, и что возвратил меня снова в тот же список реестров. Я не хочу пройти ни по какому другому виду.

Я знаю, что отправление осуществляется посредством метода delete (), что потом будет подобран в моем драйвере. Это мой драйвер:

public function destroy($id)
{
  $empleado=Empleado::findOrFail($id);

  $empleado->delete();

  return redirect("empleadoVista/listarTodos");
}

И в маршруте у меня есть метод, который предполагает, что он распределяет маршруты в назначенные по умолчанию методы CRUD:

Route::resource('empleadoVista', 'EmpleadoControlador');
0
задан 20.03.2019, 10:47
1 ответ

Метод resource тебя создает CRUD для того, чтобы он смог быть потраченным позже, но я оно ты не будет функционировать с нормальными ссылками.

Для этого верьте в следующий маршрут:

Route::get('delete/{id}', 'EmpleadoControlador@destroy')->name('empleado.delete');

И давайте верить в ссылку удаления в твоей таблице:

  <td><a href="{{route('empleado.delete', $emp->id)}}">Eliminar</a></td>

Метод драйвера уже ты считаешь это довольно определенным. Хотя когда бы то ни было эта mГЎs иметь какую-то comprobaciГіn.

public function destroy($id)
{
  $empleado=Empleado::findOrFail($id);

  if ($empleado->delete()) {
      return redirect("empleadoVista/listarTodos");
  }

  return 'Algo ha salido mal';
}
1
ответ дан 02.12.2019, 05:22
  • 1
    Habí в ошибку в lí nea Route:: get (' delete / {пойдите} ' ' delete@EmpleadoControlador')-> ямс (' оно использовать delete'); Правильное serí в: Route:: get (' delete / {пойдите} ' ' EmpleadoControlador@destroy')-> ямс (' оно использовать delete'); Я это изменил и функционируй правильно. Хотя aú n я появляется сомнение... ¿ Этот способ это делать - правилен? Так как я вижу, что, поместив тот же url в руку, я могу удалять реестры в мою прихоть, а следовательно он не кажется безопасным... – InfiniteRoads 20.03.2019, 11:51
  • 2
    Его было бы что как mí nimo, ты помещал middleware, чтобы убеждаться в том, что тот, кто это делает, пользователь с привилегиями. Также он состоял бы в том, чтобы использовать AJAX, и метод delete, для того, чтобы не было так просто, как вводить в одну унифицированный указатель ресурса. Но мы идем, с middleware он был бы должен стоить. Route::middleware('auth')->get('delete/{id}', 'EmpleadoControlador@delete')->name('empleado.delete');. Это будет способствовать тому, чтобы одинокий зарегистрированные пользователи смогли удалять. – Francisco Garrido 20.03.2019, 11:58
  • 3
    middleware дает мне ошибку: InvalidArgumentException Route [login] not defined. Я представляю, что он, потому что aú n у меня нет системы login... нет? – InfiniteRoads 20.03.2019, 12:04
  • 4
    Действительно, middleware может быть любого типа и даже конфигурировать твой один для того, чтобы он был должен перемещать специфические условия. – Francisco Garrido 20.03.2019, 12:17
  • 5
    Ло haré má s вперед, потому что говорится о серьезном проекте. MUCHÍ ПРОПАСТИ СПАСИБО @FranciscoGarrido!!! – InfiniteRoads 20.03.2019, 14:13