有没有办法在验证发生之前修改表单请求类中的输入字段?
我想修改一些输入日期字段,如下所示,但它似乎不起作用.
当我设置$this->start_dt的输入字段2016-02-06 12:00:00和$this->end_dt到2016-02-06 13:00:00我仍然得到验证错误"END_DT必须start_dt后".这意味着更新$this->start_dt和$this->end_dt在rules()函数内部时,输入请求值不会更改.
public function rules()
{
if ($this->start_dt){
$this->start_dt = Carbon::createFromFormat('d M Y H:i:s', $this->start_dt . ' ' . $this->start_hr . ':'. $this->start_min . ':00');
}
if ($this->end_dt){
$this->end_dt = Carbon::createFromFormat('d M Y H:i:s', $this->end_dt . ' ' . $this->end_hr . ':'. $this->end_min . ':00');
}
return [
'start_dt' => 'required|date|after:yesterday',
'end_dt' => 'required|date|after:start_dt|before:' . Carbon::parse($this->start_dt)->addDays(30)
];
}
Run Code Online (Sandbox Code Playgroud)
注意: start_dt并且end_dt是日期选择器字段和 …
我遇到了一个需要更改需要验证的数据的实例,即当没有提交slug时,从标题创建一个然后验证它是唯一的.
请求有一个方法replace(),它应该替换请求中的输入数据,但它似乎不起作用.任何人都可以对此发光吗?这就是我所拥有的:
<?php namespace Purposemedia\Pages\Http\Requests;
use Dashboard\Http\Requests\Request;
use Illuminate\Auth\Guard;
class PageRequest extends Request {
/**
* [authorize description]
* @return {[type]} [description]
*/
public function authorize( Guard $auth) {
return true;
}
/**
* [rules description]
* @return {[type]} [description]
*/
public function rules() {
// Get all data from request
$data = $this->request->all();
if( $data['slug'] === '' ) {
// if the slug is blank, create one from title data
$data['slug'] = str_slug( $data['title'], '-' );
// …Run Code Online (Sandbox Code Playgroud) request laravel laravel-5 laravel-validation laravel-request