Создаю свою форму регистрации, основанную на Yii2-user. Но это не суть. А суть в том, что из контроллера SiteController мне нужно выполнить js-код
Такой способ не работает:
echo "<script language='javascript'>$.snackbar({content: \"This is my awesome snackbar!\"});</script>";
Для особо любопытных - actionIndex
public function actionIndex()
{
$model_register = \Yii::createObject(RegistrationForm::className());
$model_login = \Yii::createObject(LoginForm::className());
if ($model_register->load(\Yii::$app->request->post()) && $model_register->register()) {
// Вот здесь нужно выполнить функцию
echo "<script language='javascript'>$.snackbar({content: \"This is my awesome snackbar!\"});</script>";
}
if ($model_login->load(\Yii::$app->getRequest()->post()) && $model_login->login()) {
return $this->goBack();
}
return $this->render('index',['model_register'=>$model_register, 'model_login'=>$model_login]);
}
Так нельзя поступать, js надо выполнять в представлении, но не в контроллере. Просто в представление прокиньте какой-нибудь флаг, который будет результатом проверки $model_register->load(\Yii::$app->request->post()) && $model_register->register(), и в зависимости от результата выводите или нет нужный js.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости