Laravel 5从选定字段验证出生日期
我有一个带有3个选择字段(月、日、年)的注册表,我想抓取这些字段,将其转换为正确的日期格式并进行验证。下面是3个选择框Laravel 5从选定字段验证出生日期,laravel,select,Laravel,Select,我有一个带有3个选择字段(月、日、年)的注册表,我想抓取这些字段,将其转换为正确的日期格式并进行验证。下面是3个选择框 <div class="birthday_selects"> <select name="birthday_month"> .... </select> <select name="birthday_day"> .... </select> <select
<div class="birthday_selects">
<select name="birthday_month">
....
</select>
<select name="birthday_day">
....
</select>
<select name="birthday_year">
....
</select>
</div>
好的,我可以dd($birthday),它在m-d-y中出现,因为我已经连接到那里。现在,我正试图根据之前的日期验证该日期(以查看用户是否>13岁)。我用了下面的方法,但是运气不好
public function postSignup(Request $request)
{
$birthdate = Input::get('birthday-month')."-".Input::get('birthday-day')."-".Input::get('birthday-year');
$this->validate($request, [
$birthdate => 'required',
]);
dd($birthdate);
}
当只是需要它时,它就不起作用了
谢谢你的帮助。谢谢 它不起作用,因为你做错了。它的问题在于规则。
规则键必须出现在表单字段的名称中。 对于你的答案,让我们假设$birth将是'jul-15-1992'。你要把这个变量作为键放在规则里面。因此,这是无效的,因为该字段永远不会出现在表单字段中
public function formPost(Request $request)
{
$rule = [
'birth_year' => 'required|numeric',
'birth_day' => 'required|numeric',
'birth_month' => 'required|numeric', // may be a string
];
$this->validate($request, $rule);
// check if the day is valid for the month manually.
// then form the DOB now.
}
它不起作用,因为你做错了。它的问题在于规则。
规则键必须出现在表单字段的名称中。 对于你的答案,让我们假设$birth将是'jul-15-1992'。你要把这个变量作为键放在规则里面。因此,这是无效的,因为该字段永远不会出现在表单字段中
public function formPost(Request $request)
{
$rule = [
'birth_year' => 'required|numeric',
'birth_day' => 'required|numeric',
'birth_month' => 'required|numeric', // may be a string
];
$this->validate($request, $rule);
// check if the day is valid for the month manually.
// then form the DOB now.
}
创建碳日期并添加新的[出生日]输入:
$all = $request->all();
$year = $all['birthday_year'];
$month = $all['birthday_month'];
$day = $all['birthday_day'];
// Create Carbon date
$date = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-'.$day);
//add new [birth_day] input
$request->request->add(['birth_day' => $date->format('Y-m-d')]);
$validatedData = $request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'password' => 'required|string',
'birth_day' => 'required|date_format:Y-m-d|before:today',// validate birth day
]);
希望这将帮助您创建碳日期并添加新的[出生日]输入:
$all = $request->all();
$year = $all['birthday_year'];
$month = $all['birthday_month'];
$day = $all['birthday_day'];
// Create Carbon date
$date = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-'.$day);
//add new [birth_day] input
$request->request->add(['birth_day' => $date->format('Y-m-d')]);
$validatedData = $request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'password' => 'required|string',
'birth_day' => 'required|date_format:Y-m-d|before:today',// validate birth day
]);
希望这将有助于您使用Lightlight\Support\Facades\Input代码>它应该可以工作。
使用light\Support\Facades\Input代码>应该可以。好的,谢谢。除了正确的语法之外,我正在试图找出如何逻辑地解决它。使用您在那里的规则,我们要求每个选择菜单中都有一些内容,并且它是一个数值,但问题是如何组合3个选择框(我之前提供过),并将该日期与今天进行比较,以查看它是否大于13。您以前的代码可以正确执行您正在执行的操作。你的要求就像用勺子喂。我不能那样做。很抱歉但我可以给你资源。1.2.快乐编码:)好的,谢谢。除了正确的语法之外,我正在试图找出如何逻辑地解决它。使用您在那里的规则,我们要求每个选择菜单中都有一些内容,并且它是一个数值,但问题是如何组合3个选择框(我之前提供过),并将该日期与今天进行比较,以查看它是否大于13。您以前的代码可以正确执行您正在执行的操作。你的要求就像用勺子喂。我不能那样做。很抱歉但我可以给你资源。1.2.快乐编码:)如果年、月或日为空,createFromFormat将失败。如何处理?您可以在提交数据之前进行验证:例如:12。。。12
如果年、月或日为空,则createFromFormat将失败。如何处理?您可以在提交数据之前进行验证:例如:12。。。12