الليثيوم والتحقق من صحة نموذج تسجيل الدخول (بدون نموذج) - كيف؟

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

  •  12-12-2019
  •  | 
  •  

سؤال

هل هناك أي طريقة لاستخدام Validator في نموذج تسجيل الدخول من مصادقة بسيطة في الليثيوم درس تعليمي.أعلم أنه من الأفضل استخدام التحقق من الصحة في النموذج، ولكن مع نموذج تسجيل الدخول لا يوجد نموذج، لذلك، كما أفهم، أحتاج إلى استخدام Validator في SessionsController، لكنني لا أعرف كيفية القيام بذلك (

ما أحاول القيام به هو في 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('/');
}

/* ... */
}

وأتوقع أنه بعد إرسال النموذج الفارغ، سيتم عرضه مع وجود أخطاء، كما هو الحال في إنشاء المستخدم من البرنامج التعليمي.ولكن لم تظهر أي أخطاء، فقط قم بتسجيل الدخول مرة أخرى.هل يمكنني التحقق من صحة النماذج بدون نماذج وكيفية القيام بذلك في الليثيوم؟

شكرا مسبقا.

هل كانت مفيدة؟

المحلول

ترتبط الأخطاء المقدمة في النموذج بكيان مرتبط بالنموذج عند إنشائه معه $this->form->create($user).في هذه الحالة فقط، يتم عرض الأخطاء بفضل مساعد النموذج تلقائيًا.

إذا كانت حاجتك هي التحقق من البيانات الواردة في وحدة التحكم، فيمكنك التحقق منها $this->request->data['password'] وإرجاع الأخطاء التي تحتاج إلى معالجتها بنفسك في عرض النموذج (مع if (!empty($errors)) على سبيل المثال)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top