0
我正在开发一个Yii 2.0应用程序,用户可以在其中创建订单,然后发送订单进行审阅,然后在工作流中执行多个阶段。Yii2对控制器动作的验证
一切都很好,直到昨天,客户要求在发送订单审核订单之前的可能性被视为草稿。这意味着当用户点击Send To Review按钮时,我必须关闭创建验证并验证它们。我知道Yii 2.0支持方案,但可能情况不适用于此,因为Send To Review按钮显示在只读视图中。这迫使我在控制器操作中进行验证,因为没有send_to_review视图。如何做到这一点(我的意思是控制器内部的模型验证)?
这里是控制器动作代码
public function actionSendToReview($id)
{
if (Yii::$app->user->can('Salesperson'))
{
$model = $this->findModel($id);
if ($model->orden_stage_id == 1 && $model->sales_person_id == Yii::$app->user->identity->id)
{
$model->orden_stage_id = 2;
$model->date_modified = date('Y-m-d h:m:s');
$model->modified_by = Yii::$app->user->identity->username;
//TODO: Validation logic if is not valid show validation errors
//for example "For sending to review this values are required:
//list of attributes in bullets"
//A preferred way would be to auto redirect to update action but
//showing the validation error and setting scenario to
//"send_to_review".
$model->save();
$this::insertStageHistory($model->order_id, 2);
return $this->redirect(['index']);
}
else
{
throw new ForbiddenHttpException();
}
}
else
{
throw new ForbiddenHttpException();
}
}
我需要解决的是TODO。 选项1:在同一视图中显示验证错误,并且用户必须点击更新按钮更改所请求的值保存,然后尝试再次发送到评论。 选项2:自动重定向更新视图,已经设置了控制器中发现的场景和验证错误。
感谢,
问候
它工作正常,但现在验证错误显示两次。奇怪的 –