/ / Laravel 3 Валидиране на единична входна форма - php, валидация, laravel, laravel-3

Laravel 3 Валидиране на единична входна форма - php, валидиране, ларавел, ларавел-3

Аз съм с помощта на грандиозно 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);