我正在尝试在this article
之后清理我的应用程序中的用户输入以下是我的要求
Container
标题是必填字段,如果我尝试将class TestRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
$this->sanitize();
return [
'title'=>'required|max:100'
];
}
public function sanitize()
{
$input = $this->all();
if(!empty($input))
{
$input['title'] = trim(strip_tags($input['title']));
$this->replace($input);
}
}
}
作为输入添加到标题字段中,根据<h1></h1>
函数中的逻辑,标记将被删除,但会保存空字符串在数据库中。规则中的必要字段验证没有产生任何影响。
如何处理?
更新
以下是用于保存请求的控制器方法。
sanitize()
答案 0 :(得分:1)
第一个选项是在代码中使用merge()而不是replace(),即:
$this->merge( ['title' => trim(strip_tags($input['title']))] );
第二个选项是覆盖all()函数,即:
public function all()
{
$input = parent::all();
if( !empty($input) )
{
$input['title'] = trim(strip_tags($input['title']));
}
return $input;
}
在上一个代码示例中,您不必使用sanitize()函数。