Kohana: لن تلعب Jelly-Auth و Jelly-Formo جيدًا معًا ... تسبب أخطاء

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

  •  03-10-2019
  •  | 
  •  

سؤال

محاولة استخدام الوحدات النمطية: هلام و جيلي فورم يسبب 2 أخطاء. اعتمادًا على كيفية ترتيب ملف boostrap الخاص بي ، يمكنني التخلص من خطأ واحد أو آخر ولكن ليس كلاهما ...

الخطأ 1: AUTH يعمل بشكل جيد ، Formo لا:http://wellcommentedcode.com/stack_questions/formo.jpg

Kohana::modules(array(
  'database'    => MODPATH.'database',   // Database access

  'jelly'       => MODPATH.'jelly',   // Jelly ORM

  'jelly-auth'  => MODPATH.'jelly-auth',       // Basic authentication & Jelly
  'auth'        => MODPATH.'auth',       // Basic authentication

  'formo-jelly' => MODPATH.'formo-jelly',   // Easy forms & Jelly
  'formo'       => MODPATH.'formo',   // Easy forms
  ));

خطأ 2: يعمل Formo بشكل جيد ، وفاصل المصادقة على التحقق من الصحة:http://wellcommentedcode.com/stack_questions/formo-auth.jpg

Kohana::modules(array(
  'database'    => MODPATH.'database',   // Database access

  'formo-jelly' => MODPATH.'formo-jelly',   // Easy forms & Jelly
  'formo'       => MODPATH.'formo',   // Easy forms

  'jelly'       => MODPATH.'jelly',   // Jelly ORM

  'jelly-auth'  => MODPATH.'jelly-auth',       // Basic authentication & Jelly
  'auth'        => MODPATH.'auth',       // Basic authentication
));

أي مساعدة سيكون موضع تقدير كبير ... شكرا ...

تحديث:حصلت على خطأ 2 ثابت بطريقة الاختراق ... سيكون موضع تقدير طريقة أفضل ...

لقد علقت ببساطة السطر 81 و 82 من Formo-Jelly/Classes/Jelly/Model.php

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

81: if ( ! $this->form->validate(TRUE))
82:     throw new Validator_Exception($this->form->errors(), 'Failed to validate form');
هل كانت مفيدة؟

المحلول

يأتي عدم التوافق بين الوحدات النمطية من Kohana-Formo-Jelly/Classes/Jelly/Model.php:

// If the formo object to validate against doesn't exist, make it
$this->generate_form();

if (!$this->form->validate(TRUE))
    throw new Validator_Exception($this->form->errors(), 'Failed to validate form');

إليكم التغير ، لم أختبر بعناية لأنني بدأت فقط في استخدام Jelly-Auth/Formo:

if (isset($this->form))
{
    // If the formo object to validate against doesn't exist, make it
    $this->generate_form();

    if (!$this->form->validate(TRUE))
        throw new Validator_Exception($this->form->errors(), 'Failed to validate form');
}

تصحيح: https://github.com/gimpe/kohana-formo-jelly/commit/e95df23ced9647f41f70f18244dc1794ba7c6bc1

نصائح أخرى

يجب أن تستخدم دائما try...catch() الكتل عند حفظ كائنات الهلام:

try {
    $model->save();
    // object saved successfully
}
catch (Validate_Exception $e)
{
    // get validation errors
    $errors = $e->array->errors();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top