У меня проблема с добавлением RBAC дополнительного предложения «где» в мой запрос ActiveRecord. Как удалить оператор Where, который содержит « Role = 'admin' »
К вашему сведению,
- В моей модели у меня нет переопределения для find()
- Я использую detkrium RBAC.
- У меня нет столбца ролей в таблице (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]);
}
}