2012-06-25 2 views
0

С прошлого года я работал над проектом технического обслуживания в Kohan 3.0.7. В то время как я искал последнюю версию (3.2), я столкнулся с проверкой ORM, которую я не заметил, когда работал с Kohana 3.0.7. В моем проекте я использовал проверку формы и проверил все формы в модели. При чтении, http://kohanaframework.org/3.2/guide/orm/examples/validation, я обнаружил, что правило проверки для дополнительного поля «Подтвердить пароль» добавляется в самом контроллере. Итак, я хочу знать -Kohana 3.2 Проверка и проверка формы ORM

Можем ли мы перенести правила проверки правильности ORM для полного моделирования файлов? если можно тогда, как это можно сделать?

Значения метод позаботится об инъекциях sql?

ответ

1

Вы не можете и не должны переносить проверку модели на контроллер.
В приведенном примере они использовали так называемую «дополнительную проверку».
Посмотрите на сохранение method API - он принимает необязательный аргумент Validation, который используется позже в методе check для проверки дополнительной логики (например, сопоставления паролей).
Причина в том, что у вас нет поля в вашей модели под названием «password_matching» (тогда вы могли бы просто написать это правило в функции rules;)), поэтому вам нужно использовать внешнюю проверку для такого случая.
Другим примером использования внешней проверки является загрузка файла и на основе результата загрузки выполнение операций с вашей моделью ORM.

Да, ORM является безопасным для SQL-инъекций, поскольку он использует Query Builder, который также безопасен (кроме DB::expr, который следует использовать с особой тщательностью).

+0

эй, спасибо за разъяснение. Я знаю, что мы не должны перенести проверку модели на контроллер, на самом деле, мое намерение по этому вопросу было, если можно оставить контроллер без внешней проверки. Но вы это разъяснили. Можете ли вы добавить слово для вопроса об инъекциях sql? – KutePHP

+0

Обновлен мой ответ;) – matino