У меня проблема с действием контроллера в проекте 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)
Однако я это четко определил. Я не понимаю Спасибо
Маршрут :: получить ( ‘/ напоминает’, ‘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"]);
});
});
Вы определили два маршрута с одинаковым URL и одним и тем же методом
Route::get('/reminds','RemindController@index');
Route::get('/reminds','RemindController@create');
Переименовать один из них
Route::get('/reminds','RemindController@index');
Route::get('/reminds/create','RemindController@create');
Вы написали тот же URL-адрес маршрута для того же http глагола.
Просто переименуйте их как ваше требование.
Предложение добавить имя () для маршрута для простоты.