这是我的表单请求代码,我想在验证成功后添加新变量,所以我可以在我的控制器上访问该变量:
class CouponRequest extends Request
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'start_year' => 'required',
'start_month' => 'required',
'start_day' => 'required',
'start_time' => 'required',
'finish_year' => 'required',
'finish_month' => 'required',
'finish_day' => 'required',
'finish_time' => 'required',
];
}
public function afterValidation()
{
$this->start_date = Carbon::create( $this->start_year, $this->start_month, $this->start_day );
}
}
因此在验证没有错误后,我可以在我的控制器上调用此实例:
$request->start_date;
我可以这样做吗?
答案 0 :(得分:2)
你可以这样做
from lxml import html
with gzip.open(f, 'rb') as f:
file_content = f.read()
tree = html.fromstring(file_content)
name = tree.xpath('//label/name/text()')
然后以
的形式访问控制器中的属性productData_1 = {'product_1': '18', 'product_2': '15', 'product_3': '10', 'product_4': '9'}
productData_2 = {'product_1': '18', 'product_3': '12', 'product_2': '15'}
matched_keys = []
unmatched_keys = []
matched_value = []
unmatched_value = []
for ind,value in productData_1.items():
if ind in productData_2.keys():
matched_keys.append( ind )
if value in productData_2.values():
matched_value.append( value )
else:
unmatched_value.append( value )
else:
unmatched_keys.append( ind )
if value in productData_2.values():
matched_value.append( value )
else:
unmatched_value.append( value )
print matched_keys
print unmatched_keys
print matched_value
print unmatched_value
答案 1 :(得分:1)
在表单请求中,使用功能Requiredfieldvalidator.Enabled = False
prepareForValidation()
干杯!
答案 2 :(得分:0)
我在Controller中进行了验证。该方法有一个" Request $ request"参数。我有一个我这样做:
$input = $request->all();
$input['my_new_field] = 'the_data';
答案 3 :(得分:0)
成功请求操作后,我正在使用此方法。
public function withValidator(Validator $validator)
{
if ( $validator->fails() ) {
\Log::info('Error! No Manipulation!');
}else{
$this->merge([
'custom' => 'Test Manipulation!'
]);
\Log::info('Success Manipulation!');
}
}
答案 4 :(得分:0)
以上所有方法都有效,但 IMO 我会覆盖表单请求类中的 passedValidation
方法。此方法在验证检查通过后调用,从而保持数据清洁。
例如
public function passedValidation()
{
$this->merge([
'start_date' => Carbon::create( $this->start_year, $this->start_month, $this->start_day )
]));
}
如果您现在转储数据,您应该也会看到新的 start_date 值。