Kohana ORM extend rules DB

287
14 февраля 2018, 12:34

Здравствуйте,учу кохану 3.2, тренируюсь,нужно создать форму регистрации с валидацией, форму сделал, отвалидировал,узнал что можно это все сделать через ОРМ, переделал на ОРМ, подскажите как расширить метод rules() своими правилами валидации в ОРМ? допустим пользователь регистрируется, вводит данные, нужно проверить по бд поля passport_serial , passport_number через метод rules(), если оба поля совпадают, то валидация не пройдена.

контроллер:

class Controller_Reg extends Controller_Common
{
    public function action_index()
    {
        $content = View::factory('/reg/show')->bind('reg', $reg)->bind('errors',$errors);
        $reg = ORM::factory('users')->find_all();
        if ($_POST) {
            $name = Arr::get($_POST, 'name');
            $fname = Arr::get($_POST, 'fname');
            $lname = Arr::get($_POST, 'lname');
            $passport_serial = Arr::get($_POST, 'passport_serial');
            $passport_number = Arr::get($_POST, 'passport_number');
            $user = (new Model_Users());
            $user->name;
            $user->fname;
            $user->lname;
            $user->passport_serial;
            $user->passport_number;
            $v = $user->validation();
            if (!$v->check()) {
                if((new Model_Users())->is_here($passport_serial,$passport_number))$content->errors='пользователь с таким номером паспорта уже существует';
            else{
              $user=  ORM::factory('users')
            ->set('name',$name)
            ->set('fname',$fname)
            ->set('lname',$lname)
            ->set('passport_serial',$passport_serial)
            ->set('passport_number',$passport_number)
            ->create();
               $content="успешно";
            }}
            else $content->errors = $v->errors('validation');

    }
$this->template->content = $content;
}
}

модель:

<?php defined('SYSPATH') or die('No direct script access.');
class Model_Users extends ORM
{
    protected $_table_name = 'users';
    protected $_primary_key = 'id';

    public function filters()
    {
        return array(
            TRUE => array(
                array('trim'),
            ),
        );
    }
    public function rules() {
        return array(
            'name' => array(
                array('not_empty'),
                array('alpha', array(':value', TRUE))),
            'fname' => array(
            array('not_empty'),
            array('alpha', array(':value', TRUE))),
            'lname' => array(
                array('not_empty'),
                array('alpha', array(':value', TRUE))),

            'passport_serial' => array(
                array('not_empty'),
                array('digit'),
                array('exact_length', array(':value', 4))),
            'passport_number'  => array(
                array('not_empty'),
                array('digit'),
                array('exact_length', array(':value', 6))
        ));
    }
    public function is_here($passport_serial,$passport_number){
    $array=array('passport_serial'=>$passport_serial,'passport_number'=>$passport_number);
       if(ORM::factory('users',$array))
            return FALSE;
        else return TRUE;

    }
}
READ ALSO
Наценка исходя из реальная цена товара php

Наценка исходя из реальная цена товара php

Как сделать наценку исходя из реальная цена товара например: в цене от 10 до 100 добавит наценку в 10% и от 100 до 1000 5% и так далее:

156
PHP: поиск в многомерном массиве

PHP: поиск в многомерном массиве

Добрый деньЕсть многомерный ассоциативный массив $array:

193
Перенести число с плавающей точкой из php в js

Перенести число с плавающей точкой из php в js

Друзья, всем приветПодключаю yandexmaps api на js и есть кусок кода на php, задача в общем такая

250
Сортировка массива с значением value

Сортировка массива с значением value

Как отсортировать массив по значению value только с allias "SpoksdachiPoisk"

235