Хорошо, так что немного нового в Laravel 4, и я застрял в проблеме.Отсутствует аргумент 1 Laravel 4 Функция контроллера
Я использую контроллеры ресурсов на своих маршрутах, но у меня также есть некоторые другие функции в моем контроллере. Как я уже сказал, я новичок в Laravel, поэтому я даже не уверен, что это правильная практика.
Итак, моя проблема в том, что когда я вызываю функцию редактирования ($ id) как метод GET, а затем метод обновления ($ id) как POST, он работает нормально.
routes.php
Route::get('tasks/edit/{id}', '[email protected]');
Route::post('tasks/edit', '[email protected]');
Там маршруты, которые не работают, являются:
Route::get('tasks/complete/{id}', '[email protected]');
Route::post('tasks/complete', array('as' => 'tasks.completed', 'uses' =>'[email protected]')); //I've tried this route a few different ways
На мой взгляд, я звоню метод с формой :: открытым() вызов как так:
{{ Form::open(array('route' => array('tasks.completed', $task->id))) }}
И в моих TasksController.php моих методов:
/**
* Complete the task
*
* @param int $id
* @return Response
*/
public function complete($id) //GET
{
//Find the task by id and allow to complete
return View::make('tasks.complete')->with('task', Task::find($id));
}
/**
* Update the completion
*
* @param int $id
* @return Response
*/
public function completed($id) //POST
{
$tasks = Task::find($id);
$tasks->complete = Task::completion(); //scope query from Model
$tasks->save();
//Redirect to main tasks list
return Redirect::to('/');
}
Независимо от того, что я делаю, я получаю постоянную ошибку: Отсутствует аргумент 1 для TasksController :: completed().
Я не понимаю, почему ресурс редактирования будет работать без проблем, но пользовательские функции не будут. Я почти уверен, что я что-то пропускаю, но я просто не могу понять, что.
Спасибо за вашу помощь заранее!
Благодаря Антонио! Я знал, что это то, что я не замечал. Но почему я не должен был использовать edit/{id} в сообщении? – Creationist