На моем веб-сайте пользовательский рейтинг и текстовая область обратной связи находятся на странице сообщений веб-сайта, на которой я хотел бы отделить их от страницы сообщений и создать для них новую страницу. Ниже вы можете увидеть фрагмент кода о рейтинге и обратную связь из файла контроллера сообщений.
// send feedback
public function actionSendFeed() {
$this->layout = $this->view_dir.'/Rate-Supplier';
$first_message = $this->getFirstChain(Yii::$app->request->post('chain', false));
$mail_data = $this->getMessageReceiver($first_message);
// save feedback if not empty
$feed_data = Yii::$app->request->post('Feedback', false);
if($feed_data['rate'] >= 1){
$feed_model = new Feedback();
$feed_model->customer_id = $mail_data['send_to'];
$feed_model->author_id = Yii::$app->user->identity->id;
$feed_model->subject = $first_message->subject;
$feed_model->seen = 0;
$feed_model->created_at = time();
if(!$feed_model->load(Yii::$app->request->post()) || !$feed_model->save()){
Yii::$app->session->setFlash('error', Yii::t('alerts', 'err_send_feedback'));
}else{
Yii::$app->session->setFlash('success', Yii::t('alerts', 'feedback_sent'));
// send email to customer about new feedback
\common\components\helpers\MailHelper::send(
'new_feedback',
[SH::get('support_email') => Yii::$app->name],
$mail_data['email_to'],
['{supplier_name}', '{buyer_name}', '{text}'],
[$mail_data['name_to'], Yii::$app->user->identity->name, $feed_model->text]
);
}
}
return $this->redirect(Yii::$app->request->referrer);
}
Я пытался сделать, но не удалось. Пожалуйста, поделитесь своим мнением со мной, как я могу правильно отобразить, чтобы я мог создать новую отдельную страницу для рейтинга и обратной связи.
Заранее спасибо!
Чтобы отобразить страницу в виде файла из контроллера, вы должны использовать следующий код:
return $this->render('index', [ 'arr' => Yii::$app->request->referrer ]);
// index = 'Your View File Name'
Других решений пока нет …