nchar и символ в значительной степени действуют точно таким же образом друг в качестве друга, также, как и nvarchar и varchar. Единственная разница между ними - то, что nchar/nvarchar хранят символы Unicode (важный при требовании использования расширенных наборов символов), пока varchar не делает.
, поскольку символы Unicode требуют, больше устройства хранения данных, nchar/nvarchar поля занимают вдвое больше места (так, например, в более ранних версиях SQL Server, который максимальный размер nvarchar поля 4000).
Этим вопросом является дубликат этот .
Честно говоря, я бы создал модель только для проверки. Вы можете создать модель, которая не использует таблицу, добавив
var $useTable = false;
А затем создать массив проверки с правилами для каждого поля, которое вы хотите проверить:
var $validate = array('login' => 'alphaNumeric','email' => 'email','born' => 'date');
Затем в вашем контроллере сделайте что-то вроде:
$this->MyModel->set($this->data);
if($this->MyModel->validates()){
// do stuff with valid data
}
Если вы действительно, действительно не можете использовать модель, тогда вам придется просто перебирать каждое значение в $ this-> data
в действии вашего контроллера и проверять его на соответствие обычным выражение или используйте параметр Validation :: [rule] ()
, например:
if(Validation::email($someThingThatMightBeAnEmailAddress)){
// do stuff with valid email address.
}
Думаю, мой первый вопрос будет таким: если у вас нет модели ... что вы проверяете? Обычно для заполнения модели выполняется сбор данных. Если вы используете альтернативный репозиторий данных (файл, веб-службы и т. Д.), Модель по-прежнему будет подходящим способом доступа к этим данным и управления ими.
Короче говоря, чтобы лучше ответить на этот вопрос, я думаю, что немного больше контекста было бы полезно и, возможно, даже необходимо.