Куда, млять лучше
Более менее - есть, но платные.
'on beforeAction' => function($event){ //цепляемся за событие перед запуском экшена
Yii::$app->controller->attachBehavior('',[ //цепляем к текущему контролеру поведение
'class' => \yii\filters\AccessControl::className(), //указываем класс поведения
'except' => ['login','error'], //исключим из правила экшены login и error, так как они должны быть доступны всем
'rules' => [
[
'allow' => true, //разрешаем доступ
'roles' => ['@'], //только зарегистрированным пользователям или замените на 'admin', что бы только админам позволить
],
],
]);
},
public function getCategory(){
return $this->hasOne(CategoryPit::className(), ['id' => 'category_id']);
}
public static function getCategoryTitle($id)
{
return CategoryPit::find()->where(['id' => $id])->one()->title;
}
$model->category->title;
public $category_title;
[['category_title'], 'safe'],
$query = ProductPit::find()->joinWith('category');
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
$query->andFilterWhere(['like', 'categoty.title', $this->category_title]);