Это пример кода контроллера и обычная обработка (не AJAX) запроса или запроса.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class UserController extends Controller
{
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$name = $request->input('name');
//
}
}
Что мне сделать, чтобы он работал и для запросов AJAX в функции store()
?
Если я создам другую функцию storeAjax()
, я могу включить ее в route.php (с назначенным новым маршрутом), и она работает, но это не очень хорошая практика, так как у меня есть 2 маршрута, и они должны быть одинаковыми для обоих запросов.
Возможно, это может помочь вам:
Что касается
Routes.php
, нет необходимости изменять то, что вы делаете в своем JS, представляет собой запрос типаGET
:И вы обрабатываете запрос, я надеюсь, что это поможет вам.
Используйте следующий пример, чтобы создать более мощную функцию контроллера.
-
Пример AJAX-запроса:
Создайте маршрут, указывающий на метод Store вашего контроллера, который будет обслуживать как запросы из формы, так и запросы AJAX:
Нет необходимости реализовывать другой метод.
Если это не работает для вас, это может быть связано с тем, что Laravel 5 включает проверку токена CSRF из соображений безопасности во всех запросах POST, PUT и DELETE. Вы должны включить этот токен в запрос.
Вы можете увидеть различные способы включения этого токена в официальную документацию: http://laravel.com/docs/5.1/routing#csrf-protection .
вы можете попробовать с этим