Я пытаюсь пути к RESTful контроллера с помощью следующего в приложении/routes.php:Laravel 4 Route :: Контроллер() возвращает NotFoundHttpException
Route::controller('register', 'RegisterController');
Route::get('/', '[email protected]');
В моем приложение/контроллеры/файла RegisterController.php Я добавил следующее:
<?php
class RegisterController extends BaseController
{
public function getRegister()
{
return View::make('registration');
}
public function postRegister()
{
$data = Input::all();
$rules = array(
'first_name' => array('alpha', 'min:3'),
'last_name' => array('alpha', 'min:3'),
'company_name' => array('alpha_num'),
'phone_number' => 'regex:[0-9()\-]'
);
$validator = Validator::make($data, $rules);
if ($validator->passes()) {
return 'Data was saved.';
}
return Redirect::to('register')->withErrors($validator);
}
}
Я получаю следующее сообщение об ошибке:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Когда я бегу PHP ремесленных маршруты в терминале я получаю:
+--------+--------------------------------------------------+------+----------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+--------------------------------------------------+------+----------------------------+----------------+---------------+
| | GET /register/register/{v1}/{v2}/{v3}/{v4}/{v5} | | [email protected] | | |
| | POST /register/register/{v1}/{v2}/{v3}/{v4}/{v5} | | [email protected] | | |
| | GET /register/{_missing} | | [email protected] | | |
| | GET/ | | [email protected] | | |
+--------+--------------------------------------------------+------+----------------------------+----------------+---------------+
Я не понимаю, почему регистр дважды отображалось в URI, и второе действие GET отсутствует, и почему я получаю эту ошибку.
Работает отлично! Спасибо за быстрый и проницательный ответ. Думаю, мне нужно исследовать разницу в использовании Route :: resource() vs Route :: controller(). Ура! –
@GeekyGoon, если хотите, проверьте некоторые из моих подобных ответов здесь http://stackoverflow.com/questions/19196636/laravel-restful-controller-parameters/19196884#19196884 и http://stackoverflow.com/questions/19190389/ laravel-4-remove-index-on-default-getindex-controller-function/19193669 # 19193669 затем http://stackoverflow.com/questions/19124018/laravel-retrieving-data-from-rest-api/19132837#19132837 – devo
Если вы хотите пойти 'Route :: controller ('register', 'RegisterController')' way, вы можете использовать имена функций 'getIndex' и' postIndex' для достижения тех же результатов. см.: [Restful-контроллеры] (http://laravel.com/docs/controllers#restful-controllers) – tharumax