【问题标题】:$request->all() add unnecessary parameter in laravel 5.5$request->all() 在 laravel 5.5 中添加不必要的参数
【发布时间】:2019-01-18 18:32:23
【问题描述】:

reuest()->all() 给 laravel > 5.4 添加不必要的参数。

通过调用$request->all(),它将在您的数组中添加额外的参数,类似于“master_route/controller/method_of_controller”。

例如:“admin/mycontroller/updatemethod”。

如何去掉这个不必要的参数?

【问题讨论】:

  • 可能是因为您在 POST? 中传递了该参数?你能在调用函数时在view 中显示你的代码吗?
  • 请出示您的代码以获得此类错误发生。
  • 向我们展示您的控制器并向我们展示 $request->all() 中的内容。

标签: laravel request laravel-5.5


【解决方案1】:

获取请求数据有多种方式,您可以根据自己的需要使用以下功能之一

  1. 如果您只想从请求中获取选定的数据,则可以使用。它只会获取用户名和密码。

    $input = $request->only(['username', 'password']);

  2. 如果您想获取除某些字段之外的所有数据,请使用

    $input = $request->except('credit_card');

【讨论】:

    【解决方案2】:

    由于您正在执行update,我猜您正在执行PATCHPOST 请求,在这种情况下您应该在手册中查找form request validation

    如果我的假设是正确的,您应该使用$request->validated() 来仅获取已通过验证的数据。一石二鸟:你只得到你需要的数据,并确保数据是有效的。

    简述代码示例:

    class BlogPostController extends Controller
    {
        public function store(UpdateBlogPost $request)
        {
            // Retrieve only the validated input data...
            $validated = $request->validated();
        }
    }
    
    class UpdateBlogPost extends FormRequest
    {
        public function authorize()
        {
            return true;
        }
    
        public function rules()
        {
            return [
                'title' => 'required|unique:posts|max:255',
                'body' => 'required',
            ];
        }
    }
    

    现在,$request->validated() 将只包含 titlebody,没有其他内容。

    【讨论】:

      【解决方案3】:

      尝试使用 request()->post() 代替 request()->all()

      【讨论】:

        猜你喜欢
        • 2016-07-01
        • 2016-03-11
        • 1970-01-01
        • 1970-01-01
        • 2020-01-21
        • 2020-06-06
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        相关资源
        最近更新 更多