Yii2在错误消息中显示名称而不是id(customer_id)

时间:2017-11-10 14:15:12

标签: php yii2

我想在错误消息中显示客户名称而不是客户ID。

如何实现这一目标?

以下是我模型中的关系

public function getCustomer() {
    return $this->hasOne(Customer::className(), ["id" => "customer_id"]);
}

模型验证规则,此处出现错误消息,我必须设置客户名称,

public function rules()
        {
            return [         
                ['customer_id','unique','message'=>'Customer **{here i have to set customer name}** already exist in rd pool'],

            ];
        }

enter image description here

1 个答案:

答案 0 :(得分:0)

对此建议使用服装验证

首先在模型类的规则函数中声明服装验证函数

return [

        ['id', 'validateID', 'when'=> function($model){
                return (!empty($model->id))? true:false;
            },],
        ......
];

然后在同一模型中创建名为validateId

的公共函数
public function validateId($attribute, $params, $validator)
{
    $id = $this->id;

   { here you can write code to check}
    if(condition check)){
        $this->addError('id', "Coustumer $userName booking start date");
        return false;
    }
}

然后添加' enableAjaxValidation' =>是的,形式

 <?php $form = ActiveForm::begin([
    'enableAjaxValidation' => true
    ]); ?>

最后在Controller中验证模型的验证,如

if($request->isAjax && $model->load($request->post())){
        yii::$app->response->format = 'json';
        return ActiveForm::validate($model);
    }

如果您有些困惑请参考

  

http://www.yiiframework.com/doc-2.0/guide-input-validation.html#creating-validators