Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Контроллер
$router->resource('sessions', SessionController::class);
Форма. $name_route_remove2 - sessions.destroy
<form method="destroy" action= {{ route($name_route_remove2,['id'=>$entity->id]) }}>
@csrf
<button class="btn btn-danger removeEntity entityButton">Удалить</button></form>
Сгенерированная форма
<form method="delete" action="http://kasperskycms/admin/sessions/10">
<input type="hidden" name="_token" value="WSgrwgTDJ4z3QDnqSetKPwbKYi9vYNhw5nqbUI9j"> <button class="btn btn-danger removeEntity entityButton">Удалить</button>
</form>
При отправке формы я попадаю на страницу просмотра записи(view), удаление не происходит.
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Воообще если вы в админке (то есть у вас защищена та страница с которой вы всё удаляете) проще всего гетом убрать
Роут:
Rouget::get('url/admin..../delete/{id}', 'AdminController@deleteid');
Контроллер:
public function deleteid($id){
$delete = Post::find($id);
$delete->delete();
Session::flash('message', 'Запись '.$id.' - успешно удалена!');
return redirect('url/admin..../');
}
Вьювер
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
<ul>
@if(isset($posts))
@foreach($posts as $post)
<li>$post->title - <a href="{{url('/url/admin..../delete').'/'.$post->id}}">Удалить</a></li>
@endforeach
@endif
</ul>
пс. написал как пример, естественно нужно всё делать в форме и т.д., но если на эту страницу может зайти только админа например, можно удалять таким методом, п.с. незабудьте сделать какую нить подтверждалку, типо, да конечно - удалить)
Не в сети
Parasolka, спасибо, но так неправильно.
Нужно просто в форму с post помимо ключа csrf_token добавить method_field('DELETE') и всё, также с update. В общем, всё по статье, которую я скинулю
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
црф токен потом вы делаете для того чтобы кроме вас никто не учудил, если у вас роуты админки защищены и требуют авторизации, то можно и без токена гетом передавать, ничего тут правильного или не правильного нет, это просто удобство, а ещё вы можете фронт подключить и аяксом всю дич удалять, и получать ответ - что всё гуд) тут нету правил, если дыр нету, правильно или нет
Не в сети
Первая дыра - у гет длинна передаваемой строки ограничена в отличии от post. Вторая дыра - у генерируемых resources экшенов show, update и delete одинаковые url и без указания method_field() будет переход к show(и нельзя просто указать метод в атрибуте формы, там должен быть post, иначе работать не будет).
Изменено Kirir (26.11.2018 19:33:23)
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети