El litio y la validación de formulario de inicio de sesión (sin modelo) - ¿cómo?

StackOverflow https://stackoverflow.com//questions/11684708

  •  12-12-2019
  •  | 
  •  

Pregunta

Hay alguna manera de usar el Validador en el formulario de inicio de sesión de Simple de Autenticación en la batería de Litio tutorial.Sé que es mejor utilizar la validación del modelo, pero con el formulario de inicio de sesión que no hay ningún modelo, por lo que, según entiendo, necesito usar Validador en la SessionsController, pero no sé cómo hacerlo (

Lo que estoy tratando de hacer es en SessionsController:

<?php
namespace app\controllers;
use lithium\security\Auth;
use lithium\storage\Session;
use lithium\util\Validator;

class SessionsController extends \lithium\action\Controller {

private $rules = array(
    'password' => array(
        array('notEmpty', 'message' => 'password is empty'),
    ),
    'email' => array(
        array('notEmpty', 'message' => 'email is empty'),
        array('email', 'message' => 'email is not valid')
    )
);

public function add() {
    if ($this->request->data && Auth::check('default', $this->request)) {
        return $this->redirect('/');
    }
    // Handle failed authentication attempts
    $errors = Validator::check($this->request->data, $this->rules);
    return compact('errors');
}

public function delete() {
    Auth::clear('default');
    return $this->redirect('/');
}

/* ... */
}

y yo voy a esperar a que después de vaciar formulario fue enviado, se presentará con los errores, como en la creación del usuario de tutorial.Pero no hay errores mostró, sólo formulario de inicio de sesión de nuevo.¿Puedo validar formularios sin modelos y cómo hacerlo en la batería de Litio?

Gracias de antemano.

¿Fue útil?

Solución

Los errores se representan en la forma están vinculados a una entidad, que está vinculado a la forma en el momento de crear con $this->form->create($user).Sólo en este caso, los errores se muestra gracias a la forma ayudante automáticamente.

Si su necesidad es para comprobar, en el controlador, los datos de entrada, se puede comprobar $this->request->data['password'] y el retorno de los errores que usted necesita para manejar por sí mismo en la vista formulario (con if (!empty($errors)) por ejemplo)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top