Аз съм с помощта на грандиозно Laravel рамка, но аз имам валидиране въпрос, че не може да реши по някакъв начин се опитва да потвърди един имейл поле.
Въвеждането на формуляра ми е:
{{ Form::email("email", Input::old("email"), array("id" => "email", "class" => "span4", "placeholder" => Lang::line("newsletter.email")->get($lang), "novalidate" => "novalidate")) }}
Моят контролер
public function post_newsletter() {
$email = Input::get("email");
$v = Newsletter::validator($email, Newsletter::$rules);
if($v !== true)
{ ... }
else
{ ... }
}
и моя модел
class Newsletter extends Eloquent {
/**
* Newsletter validation rules
*/
public static $rules = array(
"email" => "required|email|unique:newsletters"
);
/**
* Input validation
*/
public static function validator($attributes, $rules) {
$v = Validator::make($attributes, $rules);
return $v->fails() ? $v : true;
}
}
Направих това много пъти с успехмного сложни форми, но сега, дори и ако въведете валиден имейл получавам съобщение за грешка за изисква fied и т.н. Може би е фактът, че се опитвам да потвърдя само едно поле? Аз наистина не разбирам защо това се случва.
Отговори:
1 за отговор № 1Вярвам, че това може да се дължи на това, че не предавате масив от атрибути (или масив от данни).
Опитайте да използвате compact
функция за генериране на масив като този.
array("email" => $email);
Ето как трябва да го направите.
$v = Newsletter::validator(compact("email"), Newsletter::$rules);