У меня было это работает, но теперь маршрут больше не найден, и я не понимаю почему.laravel 4 route not found - по умолчанию показать метод
В яваскрипте функции Я, сделав АЯКС пост к функции с этим URL:
url: '/customers/storeajax',
В моем файле routes.php У меня есть следующие маршруты:
Route::post('customers/storeajax', array('as'=>'storeajax', 'uses' => '[email protected]'));
Route::post('customers/updateajax/{id}', array('as'=>'updateajax','uses' => '[email protected]'));
Route::resource('customers', 'CustomersController');
Теперь, когда я попробуйте POST на путь storeajax. Я получаю ModelNotFoundException
, который для меня означает, что маршрут не найден, поэтому по умолчанию используется метод отображения контроллера по умолчанию. В журнале ошибок я могу видеть следующую запись:
#1 [internal function]: CustomersController->show('storeajax')
, подтверждающий его обработку файла storeajax в качестве параметра.
я разместил мои дополнительные маршруты выше маршрут ресурсов по умолчанию
Я имел эту работу, прежде чем я не могу видеть, где я не так.
Кроме того, эти маршруты размещены в группе:
Route::group(array('before' => 'sentryAuth'), function() {}
, который просто обеспечивает пользователь вошел в систему. Чтобы проверить, хотя я удалил вне группы и в верхней части файла, но все же они не работают.
URL-адрес в браузере идет правильно, как: http://greenfees.loc/customers/storeajax
(который я могу увидеть в Firebug консоли
Я использую POST как метод Ajax - только для подтверждения
Может кто-нибудь понять, почему это маршрут не работает, и то, что я пропустил
Update:
Вот метод внутри контроллера:
public function storeAjax()
{
$input = Input::all();
$validation = Validator::make($input, Customer::$rules);
if ($validation->passes())
{
$customer = $this->customer->create($input);
return $customer;
}
return Redirect::route('customers.create')->withInput()
->withErrors(validation)
->with('message', 'There were validation errors.');
}
Я на 99% уверен, что мой маршрут не достигает этого метода (я тестировал с помощью vardump внутри метода), и проблема связана с моим маршрутом customer/storeajax
не может быть найдена.
То, что я думаю, что это происходит как customer/storeajax
не найден в списке маршрутов, начиная с customer
он затем недобросовестными на маршрут ресурса, который появляется в списке, и думает, что это успокоительный запрос и перевод его в качестве customer
маршрута, который defualts методы show
и используя storeajax
в качестве параметра, который затем бросает ошибку modelnotfoundexception
, потому что не может найти клиент с идентификатором «storeajax»
Это свидетельствует в журнале детализация вызова методы шоу, как указано выше ,
По какой-то причине мой маршрут для '/ customers/storeajax' не найден, даже если он кажется действительным и отображается перед ресурсом клиентов. Modelnotfoundexception - красная селедка, потому что причина связана с тем, что маршруты не соответствуют ресурсовому контроллеру клиентов, когда он не может найти маршрут.
Попробуйте (в вашем JS): 'url: '{{URL :: route (" storeajax ")}}',' (предполагается, что вы используете лезвие) –
Привет. Скрипт находится в отдельном скрипте не в шаблоне клинка, поэтому он не может использовать этот метод? – Ray