Переадресация Laravel на действие контроллера с объектом Request - PullRequest
0 голосов
/ 11 октября 2018

В приложении Laravel 5.6 у меня есть контроллер, управляющий деревом продуктов.Метод getTree () создает дерево из базы данных, а updateTree () изменяет его.Оба метода вызываются через ajax, принимающий параметры запроса:

blade-сервер:

$.get("{{ URL::to('api/gettree') }}", {
  data: $("#data").val()
  }, function(response) { ... });

$.post("{{ URL::to('api/updatetree') }}", {
  data: $("#data").val()
  }, function(response) { ... });

маршруты:

Route::get("/gettree", "TreeController@getTree");
Route::post("/updatetree", "TreeController@updateTree");

контроллер:

class TreeController extends Controller
{
  public function updateTree(Request $request)
  {
    ... process $request->input() ...
    return redirect()->action("TreeController@getTree");
  }

  public function getTree(Request $request)
  {
    ...
    return view("admin.partials.itemtree", compact("data"));
  }
...
}

ЧтоЯ пытаюсь добиться, чтобы запустить метод getTree () через перенаправление на действие контроллера после запуска updateTree (), однако таким образом я не могу передать объект запроса, ожидаемый getTree ().Как бы вы пошли об этом?Спасибо заранее!

1 Ответ

0 голосов
/ 11 октября 2018

Если вы извлекаете подпись метода action, второй аргумент относится к параметрам.

Таким образом, вы можете передавать параметры следующим образом:

return redirect()->action("TreeController@getTree", [$request]);

В качестве альтернативы вы можете удалить аргумент Request $request из вашего getTree метода и просто использовать что-то вроде $request = request()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...