标签: yii-validation

yii:如何为两个属性制定唯一规则

我有一个这样的表:(id,name,version,text).(名称,版本)是唯一键,我如何制定规则来验证这一点.

yii yii-validation yii1.x

34
推荐指数
5
解决办法
3万
查看次数

Yii:除一个场景外总是适用的验证规则

我知道您可以拥有仅适用于一种情况的验证规则:

array('username', 'exist', 'on' => 'update'),
Run Code Online (Sandbox Code Playgroud)

现在我想知道是否可以做相反的事情:除了给定的场景之外每次都适用的规则?

现在看到的唯一解决方案是列出所有其他方案,但如果我们稍后需要添加一些新闻方案,那就不太好了.

array('username', 'exist', 'on' => array('create', 'search', ...),//all the scenarios except update
Run Code Online (Sandbox Code Playgroud)

php validation model yii yii-validation

21
推荐指数
1
解决办法
1万
查看次数

yii中验证规则的场景

我在游荡是否有机会使用场景规则,

在我的模型中我有

public function rules()
{
    return array(
        array('delivery, firstNameBilling, lastNameBilling, addressBilling, cityBilling, countryBilling,
            postBilling, telephoneBilling, mailBilling, firstNameDelivery, lastNameDelivery, addressDelivery,
            cityDelivery, countryDelivery, postDelivery, telephoneDelivery, mailDelivery', 'required'),
        array('active', 'numerical', 'integerOnly'=>true),
    );
}
Run Code Online (Sandbox Code Playgroud)

在我看来,我有类似的东西

    <tr>
        <td>
            <p><?php echo $form->label($model,'telephoneBilling'); ?><span>:&nbsp;</span><span class="required">*</span></p>
        </td>
        <td>
            <?php echo $form->textField($model,'telephoneBilling'); ?>
            <?php echo $form->error($model,'telephoneBilling'); ?>
        </td>
    </tr>
</table>

<p><?php echo $form->checkBox($model,'active', array('class' => 'change')); ?>
    Delivery information: Please check the box if your delivery address differs from your billing address and enter the
    required delivery address …
Run Code Online (Sandbox Code Playgroud)

php validation scenarios yii yii-validation

5
推荐指数
1
解决办法
1万
查看次数

我们如何在Yii模型中为输入添加规则必须大于0

有谁知道如何在Yii模型中应用规则输入必须大于0值,没有任何自定义方法..

喜欢 :

public function rules()
{
    return array( 
        ....
        ....

            array('SalePrice', 'required', "on"=>"sale"),

        ....
        ....
    );
}
Run Code Online (Sandbox Code Playgroud)

非常感谢 ..

validation model yii yii-validation

4
推荐指数
1
解决办法
2万
查看次数

Yii2:scenario()模型方法

有2个需要的功能:注册时设置密码和更改密码,如果用户忘记了.用户注册时,密码长度必须至少为4个字符; 当变化通过时 - 至少5个字符.

视图通常用于注册和更改传递.显然,还存在2个动作,其中任一个场景'注册',或者使用'改变'.模型中的代码段:

public function rules() {
     return [
       ['password', 'string', 'min' => 4, 'on' => 'signup'],
       ['password', 'string', 'min' => 5, 'on' => 'change'],
     ];
}
Run Code Online (Sandbox Code Playgroud)

但我想通过scenario()做到这一点.怎么做?我是Yii的初学者,所以不明白,何时以及如何使用scenario().谢谢.

UPD.我需要使用场景()用于ONEONE规则,但是不同参数这一规律.如何在Yii2中定义场景? - 这不是我的情况.

php yii2 yii-validation

3
推荐指数
1
解决办法
9345
查看次数

如何在没有验证规则的Yii2中创建场景?

我有MyEntity.php模型.作为模型脚本的一部分,有一些规则和一些场景定义:

public function rules()
{
    return [
        [['myentity_id', 'myentity_title', 'myentity_content', 'myentity_date'], 'required'],
        [['myentity_id'], 'integer'],
        [['myentity_title', 'myentity_content'], 'string', 'max' => 120],
        [['myentity_date'], 'safe'],            
    ];
}

public function scenarios()
{
    $scenarios = parent::scenarios();
    $scenarios['scenario_one'] = ['myentity_id', 'myentity_title'];
    $scenarios['scenario_two'] = ['myentity_id', 'myentity_content'];
    return $scenarios;
}
Run Code Online (Sandbox Code Playgroud)

我需要能够有不同的场景,并且对于不同的操作,只有某些验证(通过参数)才能激活.例如,scenario_one for actionOne,scenario_two for actionTwo等.

以下是控制器中的一小部分代码:

public function actionOne($id)
{           
    $modelMyEntity = $this->findModel($id);
    $modelMyEntity->scenario = 'scenario_one';
    .
    .
    .
}

public function actionTwo($id)
{           
    $modelMyEntity = $this->findModel($id);
    $modelMyEntity->scenario = 'scenario_two';
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

现在我想要一个scenario_three,根本不应该有任何验证.我将在代码中进行额外的检查,以防止在数据库中存储时出现故障.我只需要确保没有应用任何验证,因为它阻止我的表单提交.如果我不应用任何方案,则应用默认方案(所有列出的验证都将处于活动状态,这与我需要的方案完全相反).

validation scenarios validationrules yii2 yii-validation

3
推荐指数
1
解决办法
1734
查看次数

Yii:规则'allowEmpty'=> true仍然加注'不能为空'

我对CActiveRecord.rules有疑问

public function rules(){
    return array(
        array('photo_path', 'required', 'on'=>'insert'),
        array('photo_path', 'file', 'types'=>'jpg, gif, png', 'allowEmpty'=>true),
    );
}

只有在创建模型时才需要Photo_path,在更新视图中它可以为空.

我不知道发生了什么,但一小时前它有效,但现在却没有.当我选择文件时,我得到'照片路径不能为空'

请帮忙 :)

php yii cactiverecord yii-validation

1
推荐指数
1
解决办法
4109
查看次数

Yii中相同AR模型的不同规则

我有一个模型扩展了具有特定规则的AR类.但是现在我需要在这个表中插入行,但是还有其他规则.我是否需要使用新规则创建其他模型,或者可以定义其他规则?

php activerecord yii mongodb yii-validation

1
推荐指数
1
解决办法
906
查看次数