iEmpire
(Razor Psp)
October 8, 2010, 8:45pm
1
Поясню ситуацию: есть crud, добавлять данные в нем могут все, редактировать и смотреть - только админы. Надо предлагать капчу только для добавления.
Т.е Надо, чтобы allowEmpty был только в тех случаях, когда Action = Add.
Сейчас примерно такое условие в модели:
array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd'), 'captchaAction'=>'/site/captcha',),
Что изменить для соответствия моим требованиям?
derelict
(Just Worker)
October 8, 2010, 11:41pm
2
array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd'), 'captchaAction'=>'/site/captcha', 'on' => 'insert'),
iEmpire
(Razor Psp)
October 9, 2010, 5:54am
3
Это правильно - задавать условия с именем действия в модели?
andy_s
(Arekandrei)
October 9, 2010, 6:49am
4
on=>insert это не имя действия, а имя сценария. Читайте подробнее в мануале. В двух словах - при создании новой модели ей автоматически присваивается сценарий insert, а при создании модели на основе записи бд - сценарий update. Так что вам будет достаточно этой строки без ручного присовения сценария.
iEmpire
(Razor Psp)
October 9, 2010, 6:52am
5
Спасибо большое!
А еще вопрос:
Необходимо узнать кол-во всех записей в таблице.
Это можно сделать так:
$cantidad=count(Users::model()->findAll());
Но выборка всех и подсчет функцией PHP это нерационально. Вопрос - как сделать что-то типа запроса SELECT COUNT(id) для модели?
derelict
(Just Worker)
October 9, 2010, 7:24am
6
Используй метод CActiveRecord.count:
Users::model()->count()
iEmpire
(Razor Psp)
October 11, 2010, 3:25pm
7
Благодарю!!
Не хочется лишних топиков открывать, спрошу тут.
Во вьювере _form.php есть такая строчка:
<?php echo $form->labelEx($model,'username'); ?>
Она выведет
<label for="Users_username" class="required">Ученик [сюда двоеточие] <span class="required">*</span></label>
Как вставить двоеточие ":" между "Ученик" и <span class="… ?
Это важно для дизайна формы…
someone
(198506)
October 12, 2010, 8:51am
8
Тогда в этом случае в модели:
public function attributeLabels()
{
return array(
...
'username' => 'Ученик:',
...
);
}
iEmpire
(Razor Psp)
October 14, 2010, 5:23pm
9
someone:
Тогда в этом случае в модели:
public function attributeLabels()
{
return array(
...
'username' => 'Ученик:',
...
);
}
Тогда в заголовках GridView появляются эти же двоеточия. Есть другие варианты?
andy_s
(Arekandrei)
October 14, 2010, 5:32pm
10
Svyatov
(Work)
October 15, 2010, 10:43am
11
<?php echo $form->labelEx($model,'username', array('label'=>'Ученик:')); ?>
или универсальнее:
<?php echo $form->labelEx($model,'username', array('label'=>$model->getAttributeLabel('user_username').':')); ?>
iEmpire
(Razor Psp)
October 15, 2010, 3:08pm
12
А как юзать это свойство в рамках
<?php echo $form->labelEx($model,'username'); ?>
Пример не могу найти…
andy_s
(Arekandrei)
October 15, 2010, 3:18pm
13
Я не юзал, но видно, что это статическое поле, так что: CHtml::$beforeRequiredLabel = ‘:’;
Код из исходников:
$label=self::$beforeRequiredLabel.$label.self::$afterRequiredLabel;