Php Laravel验证-取决于另一个输入字段的值
我有两个字段status和releaseYear以及productionYear。我必须证明:Php Laravel验证-取决于另一个输入字段的值,php,laravel,Php,Laravel,我有两个字段status和releaseYear以及productionYear。我必须证明: $request-> 'productionYear' => 'nullable|digits:4', 'releaseYear' => 'required|digits:4|after_or_equal:year_of_production', 'status' =>'required|in:Released,UnRelease
$request->
'productionYear' => 'nullable|digits:4',
'releaseYear' => 'required|digits:4|after_or_equal:year_of_production',
'status' =>'required|in:Released,UnReleased',
]);
如何进行以下验证:
如果状态设置为“已发布”,则生产年份和发布年份不应大于今年
如果“状态”设置为“未发布”,则生产年份不应大于今年起的一年您可以使用规则
lte
如下所示:
'productionYear' => 'nullable|digits:4|lte:releaseYear',
'releaseYear' => 'required|digits:4',
请参阅。您可以尝试以下自定义验证。我还没有测试,希望这会给你一个想法
use Illuminate\Support\Facades\Input;
'status' => 'required|in:Released,UnReleased',
'productionYear' => [
'nullable',
'digits:4',
function($attribute, $value, $fail) {
$status = Input::get('status'); // Retrieve status
if ($status === 'Released' && $value > now()->year) {
return $fail($attribute.' is invalid.');
} elseif ($status === 'UnReleased' && $value > (now()->year + 1)) {
return $fail($attribute.' is invalid.');
}
},
],