CartController
Код: Выделить всё
public function actionView()
{
$session = Yii::$app->session;
$session->open();
$this->setMeta('Корзина');
$order = new Order();
if ($order->load(Yii::$app->request->post()))
{
$order->qty = $session['cart.qty'];
$order->sum = $session['cart.sum'];
if ($order->save())
{
$this->saveOrderItems($session['cart'], $order->id);
Yii::$app->session->setFlash('info', 'Заказ принят. В ближайшее время мы с Вами свяжемся.');
Yii::$app->mailer->compose('order', compact('session', 'order'))
->setFrom(['lea@msvlg.ru' => '...'])
->setTo(Yii::$app->params['adminEmail'])
->setSubject('Заявка')
->send();
Yii::$app->mailer->compose('letter', compact('session'))
->setFrom(['lea@msvlg.ru' => '...'])
->setTo($order->email)
->setSubject('Заявка')
->send();
$session->remove('cart');
$session->remove('cart.qty');
$session->remove('cart.sum');
return $this->refresh();
}
else
{
Yii::$app->session->setFlash('error', 'При оформлении произошла ошибка. Пожалуйста свяжитесь с нами для заказа.');
}
}
return $this->render('view', compact('session', 'order', 'letter'));
}
Код: Выделить всё
SiteController
<?php
namespace app\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
use app\models\Categories;
class SiteController extends AppController
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['logout'],
'rules' => [
[
'actions' => ['logout'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post', 'get'],
],
],
];
}
/**
* @inheritdoc
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
/**
* Displays homepage.
*
* @return string
*/
public function actionIndex()
{
$cat = Categories::find()->where(['parent_id' => ''])->with('subcats')->limit(9)->all();
// $subcats = Categories::find()->where(['parent_id' => ''])->all();
return $this->render('index', compact('cat', 'subcats'));
}
/**
* Login action.
*
* @return string
*/
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
}
return $this->render('login', [
'model' => $model,
]);
}
/**
* Logout action.
*
* @return string
*/
public function actionLogout()
{
Yii::$app->user->logout();
return $this->goHome();
}
/**
* Displays contact page.
*
* @return string
*/
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('contactFormSubmitted');
// Пробовал еще с такой строкой,
// Yii::$app->mailer->compose('contact', ['model' => $model])->setFrom('lea@msvlg.ru')->setTo($model->email)->setSubject('Письмо директору')->send();
// та же ошибка Swift_TransportException
// Expected response code 250 but got code "553", with message "553 5.7.1 Sender address rejected: not owned by auth user.
return $this->refresh();
}
return $this->render('contact', [
'model' => $model,
]);
}
/**
* Displays about page.
*
* @return string
*/
public function actionAbout()
{
return $this->render('about');
}
}
config/web
Код: Выделить всё
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => 'lea@msvlg.ru',
'password' => '...',
'port' => '465',
'encryption' => 'ssl',
],
],
Вот файлы, если я правильно понял о чем Вы.