在Laravel 5.6应用程序中,我有一个控制器来管理产品树。 getTree()方法从数据库构建树,updateTree()对其进行修改。这两种方法都是通过接受请求参数的ajax调用的:
刀片:
$.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"));
}
...
}
我想要实现的是在updateTree()运行后通过重定向到控制器操作来触发getTree()方法,但是这种方式我无法传递getTree()期望的Request对象。您将如何处理?预先感谢!
答案 0 :(得分:2)
如果您检出action
方法的signature,则第二个参数是参数。
因此您可以像这样传递参数:
return redirect()->action("TreeController@getTree", [$request]);
或者,您可以从Request $request
方法中删除getTree
参数,而只使用$request = request()