candasm/lafres

简单的 Laravel 表单请求清理器

v1.0.0 2017-09-16 15:54 UTC

This package is auto-updated.

Last update: 2024-09-10 05:40:32 UTC


README

我为什么创建这个包?

在 Laravel 框架中,清理器支持已经不再存在。实际上,当有表单输入验证时,这并不是必需的。但是,当您想要简单的表单过滤功能时,哎!除了写几行代码外,您别无选择。

它做什么?

移除从规则方法未返回的表单键。

安装

$ composer require candasm/laravel-form-request-sanitizer

如何使用它?

只需在您的应用程序抽象请求类中(例如,Controller 类)使用 SanitizeWhenResolvedTrait

<?php 

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Candasm\Lafres\SanitizeWhenResolvedTrait;

abstract class Request extends FormRequest {
	use SanitizeWhenResolvedTrait;
	
	//
}

并在您的 FormRequest 类(例如 StoreBlogPostRequest)中使用 SanitizeFormRequest 接口。

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;
use Candasm\Lafres\SanitizeFormRequest;

class StoreBlogPostRequest extends Request implements SanitizeFormRequest
{

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ];
    }
}

对于这个例子,如果您收到如下所示的 POST 请求

	[
            'title' => 'test',
            'body' => 'test',
            'subject' => 'test',	    
        ]

并且您想从 $request 变量(它注入到您的控制器方法中)获取所有请求参数。

...
	public function store(StoreBlogPostRequest $request)
	{
		$attributes = $request->all();
		$blogPost = BlogPost::create($attributes);
	}
...

BlogPost 模型将只接收这些参数

	[
            'title' => 'test',
            'body' => 'test',    
        ]