public function validatePassword($password)
{
return Yii::$app->security->validatePassword($password, $this->password_hash);
}
public function setPassword($password)
{
$this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
} else {
Yii::$app->session->setFlash('exist', "Пользователь с таким именем существует.");
}
if (!User::find()->where(['username' => $model->username])->limit(1)->all()) {
public $program_name_id; // необходимо добавить в правила rules(), например указать, что это свойство integer
public function rules()
{
return [
['program_name_id', 'integer']
];
}
// и добавить в фильтры
->andFilterWhere(['program.id' => $this->program_name_id])
'columns' => [
[
'attribute' => 'program_name_id',
'value' => 'program.name'
]
]
'columns' => [
[
'attribute' => 'program_name_id',
'filter' => Program::getAllProgram()
'value' => 'program.name'
]
]
use yii\helper\ArrayHelper;
public static function getAllProgram()
{
/**
* в запрос self::find()->all() можно добавить условие выборки, сортировки, группировки и т.д. и т.п.
*/
return ArrayHelper::map(self::find->all(), 'id', 'name');
}
public $program_name; // необходимо добавить в правила rules(), например указать, что это свойство string
public function rules()
{
return [
['program_name', 'string']
];
}
// и добавить в фильтры
->andFilterWhere(['like','program.name' , $this->program_name])
'columns' => [
[
'attribute' => 'program_name',
'value' => 'program.name'
]
]
2018-11-24 >= 2018-11-24
->andWhere(['>=', Event::tableName() . '.date_from', '2018-11-24 00:00:00'])
->andWhere(['>=', Event::tableName() . '.date_from', strtotime('2018-11-24' . '00:00:00')])
->andWhere(['<=', Event::tableName() . '.date_to', strtotime('2018-11-25' . '23:59:59')])
$.ajax({
url: '//domain2.com/get-widget',
data: {project: 1},
type: 'post',
crossDomain:true,
async:true,
dataType: 'jsonp',
success: function (data, status) {
if (data.status == 'ok') {
$('body').append(data.html)
}
}
})
$cookies = Yii::$app->request->cookies;
if (!$cookies->has($cookieName)) {
Yii::$app->response->cookies->add(new \yii\web\Cookie([
'name' => $cookieName,
'value' => 'test',
'expire' => time() + 3600 * 24 * 365
]));
} else {
$value = $cookies->get($cookieName);
}
Yii::$app->response->cookies
Yii::$app->request->cookies
$query = ReportMailing::find()->joinWith('mailing')->where(['user_id' => Yii::$app->user->id]);
// формируете $dataProvider
$query->andFilterWhere(['like', '{{%mailing}}.subject', $this->subject]);
return $dataProvider;
$query->andFilterWhere(['{{%mailing}}.subject' => $this->subject]);
public function contact() // где Вы в методе используете $emailto? Нигде! Удалить
{
if ($this->validate()) {
Yii::$app->mailer->compose()
->setFrom(Yii::$app->params['adminEmail']) /* от кого */
->setTo([$this->email => $this->name,'adminmail@mail.ru' => 'yii2.loc'])
->setSubject('Админ') /* имя отправителя */
->setTextBody('Добрый день! Ваше сообщение принято!')->setCharset('UTF-8') /* текст сообщения */
->send(); /* функция отправки письма */
return true;
} else {
return false;
}
}
public function actionContact()
{
$this->layout = false;
/* Создаем экземпляр класса */
$model = new ContactForm();
// удаляем Yii::$app->params['adminEmail'], так как в методе используете напрямую
// ->setFrom(Yii::$app->params['adminEmail'])
if ($model->load(Yii::$app->request->post()) && $model->contact()) {
// $model->save(false) отменяем валидацию, так как уже прошли в методе $model->contact()
if($model->save(false)){
Yii::$app->session->setFlash('contactFormSubmitted');
return $this->refresh();
}
} else {
return $this->render('contact', [
'model' => $model,
]);
/* return $this->render('contact', compact('contact'));*/
}
}
'adminEmail' => '@mail.ru',
'encryption' => ('ssl'), // tls
'host' => 'smtp.gmail.com', // или какой у него в действительности
'port' => '465', // или какой у него в действительности
'username' => 'username@gmail.com'
'password' => '121212' // пароль для входа в username@gmail.com
public function actions()
{
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
]
];
}
['date_to', 'required', 'when' => function($model, $attribute){
return $model->date_from == 1;
}, 'whenClient' => "function (attribute, value) {
return $('#uploadsfiles-date_from').val() == 1;
}"]
$model = Event::find()->where(['id' => $id])->with(['appointments.certification'])->one();
return [
'language' => 'ru', // указать русский язык
'components' => [
ListView::widget([
'sorter' => [
'class' => CustomLinkSorter::class,
],
Этот модуль позволяет запускать виртуальные хосты от имени пользователя. Кроме всего прочего, это позволяет не задумываться о выставлении дополнительных прав на те, или иные папки и файлы на ваших сайтах.
apachectl -t -D DUMP_MODULES
sudo apt-get install libapache2-mpm-itk && sudo service apapche2 restart
<IfModule mpm_itk_module>
AssignUserId your_user_name your_user_groupe
</IfModule>