Php 针对Laravel中数据库的日期输入验证
这就是我所拥有的,它只是多次存储值,即使我有一个规则来检查数据库中“约会”表的唯一性。 谁能建议我如何在我的表中只存储唯一的日期。提前谢谢Php 针对Laravel中数据库的日期输入验证,php,validation,laravel,laravel-4,Php,Validation,Laravel,Laravel 4,这就是我所拥有的,它只是多次存储值,即使我有一个规则来检查数据库中“约会”表的唯一性。 谁能建议我如何在我的表中只存储唯一的日期。提前谢谢 public function store() { date_default_timezone_set('Australia/Melbourne'); $date = date('Y/m/d', time()); $todDate = new DateTime($
public function store()
{
date_default_timezone_set('Australia/Melbourne');
$date = date('Y/m/d', time());
$todDate = new DateTime($date);
$dateFormated = $todDate->format('Y-m-d');
$input = Input::all();
$rules = array(
'appoint_day' => 'required|unique:appointments'
);
$validator = Validator::make($input, $rules);
if($validator->passes())
{
$schedule = new Appointment;
$appoint_day = Input::get('appoint_date');
if(strtotime($appoint_day) - strtotime($dateFormated) >= 0)
{
$schedule->user_id = Auth::user()->id;
$schedule->appoint_day = $appoint_day;
$schedule->save();
}
}
else
{
echo 'failed';
}
return View::make('admin.professions.appointments');
}
您的
输入
值名为任命日期
,但您正在验证名为任命日期
的字段,该字段可能不存在。将您的字段名更改为appoint_day
,验证程序应能正常运行。Wow!真奇怪!任命日是表中的列名,其中任命日是输入字段名。是的,你的解决方案奏效了,但我不明白背后的原因。非常感谢!!。这是因为验证器希望检查字段的名称(在输入
数组中),但您没有指定日期
字段…因此它不会验证任何内容。另外,unique
规则使用输入字段名作为列名检查数据库,除非您另有指定。因此,如果您将字段名保留为任命日期
,您也可以选择执行“任命日期”=>“必需”|唯一:任命,任命日期”
。请提供与上述问题相关的快速帮助:如何验证唯一用户的唯一“任命日期”?也就是说,像2010年1月1日这样的日期对于用户1和用户2来说是唯一的!以下内容如何:$rules=array('appoint_day'=>'required | unique:appoints,user_id');我不确定我是否遵循了你想要实现的目标;您建议的代码将检查appoint\u day
在user\u id
字段中是否唯一。需要更多关于你的意图的信息…我建议你发布一个新的问题,并提供完整的细节。