Php 以简单形式保存错误

Php 以简单形式保存错误,php,yii2,save,select2,Php,Yii2,Save,Select2,我有一个使用Select2小部件的简单表单。我遇到问题的部分如下所示: <?php $form->field($model, 'payment_option_id')->widget(Select2::classname(), [ 'data' => [], 'id' => 'payment-option-id-select-field', 'options' => ['placeholder' => Yii::t('app',

我有一个使用Select2小部件的简单表单。我遇到问题的部分如下所示:

<?php
$form->field($model, 'payment_option_id')->widget(Select2::classname(), [
    'data' => [],
    'id' => 'payment-option-id-select-field',
    'options' => ['placeholder' => Yii::t('app', 'Select payment')],
    'pluginOptions' => [
        'allowClear' => true,
        'minimumInputLength' => 0,
        'language' => [
            'errorLoading' => new JsExpression("function () { return 'Waiting for results...'; }"),
        ],
        'ajax' => [
            'url' => '#',
            'dataType' => 'json',
            'data' => new JsExpression('function(params) { console.log(params); return {q:params.term}; }')
        ],
    ]])->label(Yii::t('app', Yii::t('app', 'Payment')))
?>
我在PaymentOption模型中拥有的规则:

public function rules()
    {
        return [
            [['amount', 'date', 'deal_id', 'user_id'], 'required'],
            [['amount'], 'number'],
            [['date', 'buyer_id'], 'safe'],
            [['deal_id', 'user_id', 'payment_option_id'], 'integer'],
            [['deal_id'], 'exist', 'skipOnError' => true, 'targetClass' => Deals::className(), 'targetAttribute' => ['deal_id' => 'id']],
            [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
            [['payment_option_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['payment_option_id' => 'id']],
        ];
    }

“你能显示var_dump的结果吗?”Chinmay补充道。看起来没问题。。您还可以显示您的保存逻辑吗?唯一的事实是,您的值是字符串,但规则中有整数。。如何在表中声明列payment\u option\u id?我认为“payment\u option\u id”的规则使用了错误的模型。我的假设是,它不应该映射到用户模型,而是映射到另一个模型。该错误是一个验证错误,id=18的用户模型不存在。您能显示var_dump的结果吗?@Chinmay添加。似乎可以。。您还可以显示您的保存逻辑吗?唯一的事实是,您的值是字符串,但规则中有整数。。如何在表中声明列payment\u option\u id?我认为“payment\u option\u id”的规则使用了错误的模型。我的假设是,它不应该映射到用户模型,而是映射到另一个模型。该错误是一个验证错误,不存在id为18的用户模型。
public function rules()
    {
        return [
            [['amount', 'date', 'deal_id', 'user_id'], 'required'],
            [['amount'], 'number'],
            [['date', 'buyer_id'], 'safe'],
            [['deal_id', 'user_id', 'payment_option_id'], 'integer'],
            [['deal_id'], 'exist', 'skipOnError' => true, 'targetClass' => Deals::className(), 'targetAttribute' => ['deal_id' => 'id']],
            [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
            [['payment_option_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['payment_option_id' => 'id']],
        ];
    }