繁体   English   中英

Laravel-路由重定向后控制器中的请求为空

[英]Laravel - request in controller is empty after redirect in route

当我重定向路线时,无法访问请求数据。

这是ajax请求信息:

Content-Type: application/x-www-form-urlencoded
param1=my+param&request=search

routes.php

use Illuminate\Http\Request;

Route::any('/items/search', 'ItemsController@search');

Route::any('/items', [ 
    function(Request $request){

        if ($request->input('request') == 'search') {
            // echo $request->input('param1');  // returns param1 value correctly
            return redirect()->action('ItemsController@search')->withInput();
        }
    }
]);

这是控制器

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class ItemsController extends Controller
{
    public function search(Request $request)
    {
        var_dump($request->all()); // returns: array(0) { }
    }
}

重定向后如何访问控制器中的发布数据?

withInput方法将输入添加到会话中。 您可以使用$request->session->all()在控制器中访问它。

话虽这么说,一种更RESTful的方法是拥有一个路由/items然后在您的控制器中决定是否根据输入参数过滤结果。

尝试这个

return redirect()->route('/items/search')->withInput();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM