Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 针对Laravel中数据库的日期输入验证_Php_Validation_Laravel_Laravel 4 - Fatal编程技术网

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
字段中是否唯一。需要更多关于你的意图的信息…我建议你发布一个新的问题,并提供完整的细节。