【问题标题】:Function rules() doesn't work yii2函数规则()不起作用yii2
【发布时间】:2017-04-21 12:53:29
【问题描述】:

我的代码中没有应用函数规则,我在 loginFrom 模型中做了相同的代码,但效果很好! 这是我的模型

<?php

namespace backend\models;
use Yii;
use yii\base\Model;
class Year extends \yii\db\ActiveRecord
{
    public function rules()
    {
        return [
            [['Current_Year', 'Date', 'Description'], 'required'],
        ];
    }
    public static function tableName()
    {
        return 'year';
    }

    public function attributeLabels()
    {
        return [
            'YearId' => 'Year ID',
            'Theme' => 'Theme',
            'Current_Year' => 'Current  Year',
            'Date' => 'Date',
            'Description' => 'Description',
        ];
    }

}

【问题讨论】:

  • 你想用这个模型做什么?你在什么时候调用一些代码并期望规则做任何事情?
  • 在我的视图页面中,我希望用户输入新年的数据
    输入名称

    这仅适用于一个属性,但不起作用
  • 您能否将此代码添加到您的问题中,因为它与您的代码无法正常工作的原因极为相关。谢谢!
  • 您应该为您的列使用全部小写的名称。这将有助于防止将来在引用列时出现拼写错误。 -- 另外,请显示您的视图代码和控制器操作。 -- 看起来您的表单不正确,您应该使用 Yii2 ActiveForm,以便它生成相应的表单输入值和 ID。

标签: php yii yii2 yii2-advanced-app yii2-validation


【解决方案1】:

您的问题不是您的验证不起作用,而是服务器接收到的数据不正确。它将没有正确的名称来使 Yii 能够将模型属性与所需的规则相匹配。您的表单应该看起来像这样;

$form = ActiveForm::begin();
echo $form->field($model, 'name')->textInput();
$form = ActiveForm::end();

其中$model 是您的Year 类的一个实例。

这将使用 Yii 生成所有匹配的字段名称,然后能够将验证规则与属性匹配。你会发现你的字段名是Year['name'],Yii 可以找到该属性的验证规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多