#php #laravel #mongodb
#php #laravel #mongodb
Вопрос:
Я создаю CRUD-приложение в Laravel 7 и MongoDB. Добавление элементов в коллекцию работает нормально. Но я хотел удалить элемент, и, к сожалению, Laravel перестал мне нравиться… Я получаю сообщение об ошибке:
Action AppHttpControllersInQuestController@destroy not defined.
Я проверил дюжину раз и написал такую функцию
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppQuests;
use DB;
use IlluminateFoundationAuthAuthenticatesUsers;
class InQuestsController extends Controller
{
...
public function destroy($id) {
$quest = Quests::find($id);
$quest->delete();
return redirect('inside');
}
}
Для функции я ссылаюсь на:
<form action="{{ action('InQuestsController@destroy', $quest->id) }}" method="POST">
@csrf
<input name="_method" type="hidden" value="DELETE">
<button id="details" class="idButton detailsButton" type="button"><img src="{{ asset('images/arrow.png') }}" alt="" class="icon arrow"></button>
<button class="editButton" type="button"><img src="{{ asset('images/pencil.svg') }}" alt=""></button>
<button class="deleteButton" type="submit"> <img src="{{ asset('images/bin.png') }}" alt=""></button>
</form>
Что не так?
Комментарии:
1.
InQuestsController
!=InQuestController
исправьте это здесьAction AppHttpControllersInQuestController@destroy not defined.
2. Исправлено, но ошибка все та же
3. та же ошибка .?
Action AppHttpControllersInQuestController@destroy not defined
?4. @KamleshPaul Да, это то же самое. Но «Задание» теперь является «Квестами» в описании ошибки -> Action App Http Controllers InQuestsController @destroy не определено.
5. затем используйте URL вместо прямого действия контроллера
Ответ №1:
ИСПРАВИТЬ:
В web.php добавить строку:
Route::delete('{id}', 'InQuestsController@destroy')->name('destroy');