Yii2 ActiveRecord с дополнительным предложением Where

У меня проблема с добавлением RBAC дополнительного предложения «где» в мой запрос ActiveRecord. Как удалить оператор Where, который содержит « Role = 'admin' »

К вашему сведению,

  1. В моей модели у меня нет переопределения для find()
  2. Я использую detkrium RBAC.
  3. У меня нет столбца ролей в таблице (myrules). Результат SQL применим к каждому пользователю.

Ошибка из PHP

Database Exception – yii\db\Exception

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'role' in 'where clause'
The SQL being executed was: **SELECT * FROM `myrules` WHERE role NOT LIKE "admin" ORDER BY `seq_no` LIMIT 20**
Error Info: Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'role' in 'where clause

'

Модель

namespace app\models;
use Yii;

class MyRulesModel extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'myrules';
}

......
}

Контроллер

use app\models\MyRulesModel;
use yii\data\Pagination;
use yii\db\ActiveRecord;
use yii\data\ActiveDataProvider;
use yii\helpers\ArrayHelper;
use yii\base\Model;



class Controller MyruleController extends \yii\web\Controller
{
public function actionMyrules()
{
$model = new MyRulesModel;


$query = MyRulesModel::find()->orderBy("seq_no ASC");

$dataprovider = new ActiveDataProvider(['query'=> $query ,
'pagination'=> ['pagesize'=>20]]);


echo $this->render('/network/myrules',['my_model'=>$dataprovider]); 
} 
}

person AlbertK    schedule 05.06.2016    source источник
comment
Ошибка связана с тем, что в вашей таблице нет роли столбца.. проверьте, правильно ли сформирована таблица и содержит ли нужные столбцы..   -  person scaisEdge    schedule 05.06.2016


Ответы (1)


Лишь бы обновить. Я нашел проблему. Кто-то изменил файл /app/data/ActiveDataProvider.php. Возврат к исходному коду решил проблему. Спасибо.

person AlbertK    schedule 05.06.2016