Действие не определено контроллером laravel / php

У меня проблема с действием контроллера в проекте laravel, и я понятия не имею, почему, так как все выглядит хорошо.

Вот мой маршрут относительно части ошибки:

Route::get('/reminds','RemindController@index');
Route::get('/reminds','RemindController@create');

Вот метод создания и индексирования, определенный в файле RemindController.php:

    public function index()
{
$reminds  = Remind::all();
return View::make('remind.index', compact('reminds'));
}public function create()
{
try {$listyears = RemindController::generate_list(date('Y')-100, 101);
$listmonths = RemindController::generate_list(1, 12);
$listdays = RemindController::generate_list(1, 31);

return View::make('remind.create', compact('listyears', 'listmonths', 'listdays'));
} catch (Exception $e){
App:abort(404);
}
}

В create.blade.php (напомнить) у меня есть это, что вызывает проблемный индекс:

    <div class="panel-heading">
<h2>create reminder</h2>
</div>
<div class="panel-body">
{!! Form::open(['action'=> 'RemindController@index', 'class' => 'form']) !!}

Проблема в том, что каждый раз, когда я пытаюсь получить доступ к странице, которая вызывает форму создания напоминания, я получаю сообщение об ошибке:

ErrorException (E_ERROR)
Action App\Http\Controllers\RemindController@index not defined. (View: C:\Users\myusername\Desktop\project\prototype\resources\views\remind\create.blade.php)

Однако я это четко определил. Я не понимаю Спасибо

0

Решение

Маршрут :: получить ( ‘/ напоминает’, ‘RemindController @ индекс’);
Маршрут :: получить ( ‘/ напоминает’, ‘RemindController @ создать’);

это тот же маршрут, так что технически в этой части у вас уже есть проблема. попробуйте изменить протокол HTTP или переименовать ваш маршрут.

Route::get('reminds','RemindController@index');
Route::post('reminds','RemindController@create');

или же

Route::get('reminds','RemindController@index');
Route::get('reminds/create','RemindController@create');

также пропустите первую косую черту на вашем маршруте, это бесполезно.

— Обновить*

вместо использования статического вызова Route

вы можете использовать что-то вроде этого

$router->group(function(){
$this->get('/',['as' => "homepage" , 'use' => "MainController@homepage"] );

$this->group(['prefix' => "dashboard",'as' => "dashboard"],function(){
$this->get('/',['as' => "index",'use' => "DashboardController@index"]);
});
});
2

Другие решения

Вы определили два маршрута с одинаковым URL и одним и тем же методом

Route::get('/reminds','RemindController@index');
Route::get('/reminds','RemindController@create');

Переименовать один из них

Route::get('/reminds','RemindController@index');
Route::get('/reminds/create','RemindController@create');
1

Вы написали тот же URL-адрес маршрута для того же http глагола.

Просто переименуйте их как ваше требование.
Предложение добавить имя () для маршрута для простоты.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector