hola, estoy mostrando los datos de mi gridview segun el usuario logueado de esta forma:
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\Planificacion;
/**
* PlanificacionSearch represents the model behind the search form about `app\models\Planificacion`.
*/
class PlanificacionSearch extends Planificacion
{
public $orga_siglas;
public $entidad_nombre;
public $dic_desc;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_planificacion', 'orga_fk', 'entidad_fk', 'dic_fk'], 'integer'],
[['dic_desc','orga_siglas','entidad_nombre','plan_cod', 'plan_fecha', 'plan_desc', 'plan_acc_extra', 'plan_orden', 'plan_reg_por'], 'safe'],
];
}
/**
* @inheritdoc
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params)
{
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'managePR'))
{
$PR="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP PR'";
$query = Planificacion::findBySql($PR);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageART'))
{
$ART="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP ART'";
$query = Planificacion::findBySql($ART);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageMAY'))
{
$MAY="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP MAY'";
$query = Planificacion::findBySql($MAY);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageLH'))
{
$LH="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP LH'";
$query = Planificacion::findBySql($LH);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageMTZ'))
{
$MTZ="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP MTZ'";
$query = Planificacion::findBySql($MTZ);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageCFG'))
{
$CFG="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP CFG'";
$query = Planificacion::findBySql($CFG);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageVC'))
{
$VC="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP VC'";
$query = Planificacion::findBySql($VC);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageSS'))
{
$SS="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP SS'";
$query = Planificacion::findBySql($SS);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageCA'))
{
$CA="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP CA'";
$query = Planificacion::findBySql($CA);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageCMG'))
{
$CMG="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP CMG'";
$query = Planificacion::findBySql($CMG);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageLT'))
{
$LT="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP LT'";
$query = Planificacion::findBySql($LT);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageHOG'))
{
$HOG="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP HOG'";
$query = Planificacion::findBySql($HOG);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageGRM'))
{
$GRM="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP GRM'";
$query = Planificacion::findBySql($GRM);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageSC'))
{
$SC="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP SC'";
$query = Planificacion::findBySql($SC);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageGTM'))
{
$GTM="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP GTM'";
$query = Planificacion::findBySql($GTM);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageMEIJ'))
{
$MEIJ="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'CP MEIJ'";
$query = Planificacion::findBySql($MEIJ);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDASNAP'))
{
$DASNAP="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC DASNAP'";
$query = Planificacion::findBySql($DASNAP);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDIC_SSP'))
{
$DIC_SSP="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC SSP'";
$query = Planificacion::findBySql($DIC_SSP);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDIC_TCS'))
{
$DIC_TCS="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC TCS'";
$query = Planificacion::findBySql($DIC_TCS);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDIC_ICI'))
{
$DIC_ICI="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC ICI'";
$query = Planificacion::findBySql($DIC_ICI);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDIC_OGSB'))
{
$DIC_OGSB="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC OGSB'";
$query = Planificacion::findBySql($DIC_OGSB);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageDIC_SA'))
{
$DIC_SA="SELECT
planificacion.*
FROM
planificacion
INNER JOIN dic ON (planificacion.dic_fk = dic.id_dic)
WHERE
dic_siglas = 'DIC SA'";
$query = Planificacion::findBySql($DIC_SA);
}
if(\Yii::$app->authManager->checkAccess(Yii::$app->user->getId(),'manageUsers'))
{
$query = Planificacion::find();
}
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$dataProvider->sort->attributes['orga_siglas'] = [
// The tables are the ones our relation are configured to
// in my case they are prefixed with "tbl_"
'asc' => ['planificacion.orga_fk' => SORT_ASC],
'desc' => ['planificacion.orga_fk' => SORT_DESC],
];
$dataProvider->sort->attributes['entidad_nombre'] = [
// The tables are the ones our relation are configured to
// in my case they are prefixed with "tbl_"
'asc' => ['planificacion.entidad_fk' => SORT_ASC],
'desc' => ['planificacion.entidad_fk' => SORT_DESC],
];
$dataProvider->sort->attributes['dic_desc'] = [
// The tables are the ones our relation are configured to
// in my case they are prefixed with "tbl_"
'asc' => ['planificacion.dic_fk' => SORT_ASC],
'desc' => ['planificacion.dic_fk' => SORT_DESC],
];
$this->load($params);
if (!$this->validate()) {
// uncomment the following line if you do not want to any records when validation fails
// $query->where('0=1');
return $dataProvider;
}
$query->joinWith(['orgaFk','entidadFk','dicFk']);
$query->andFilterWhere(['like', 'plan_cod', $this->plan_cod])
->andFilterWhere(['like', 'plan_desc', $this->plan_desc])
->andFilterWhere(['like', 'plan_fecha', $this->plan_fecha])
->andFilterWhere(['like', 'n_orga.orga_siglas', $this->orga_siglas])
->andFilterWhere(['like', 'plan_acc_extra', $this->plan_acc_extra])
->andFilterWhere(['like', 'dic.dic_desc', $this->dic_desc])
->andFilterWhere(['like', 'entidad.entidad_nombre', $this->entidad_nombre])
->andFilterWhere(['like', 'plan_orden', $this->plan_orden])
->andFilterWhere(['like', 'plan_reg_por', $this->plan_reg_por]);
return $dataProvider;
}
}
cosa que me funciona perfectamente, pero ahora ninguna columnas de las que contienen la consulta me filtra, solamente lo hace cdo los muestro todos y no cdo los acoto, que puede ser??