Самый простой метод который нашел, не понимаю почему о нем не заикаются в описаний Yii :
по совету grinat
создаем компонент WebUser который наследует \yii\web\User
в нем переопределяем функцию can :
public function can($permissionName, $params = [], $allowCaching = true)
{
....
}
потом в конфиге используем для компонента user вместо стандартного свой класс
'user' =>
[
'identityClass' => 'app\models\User',
'class' => 'app\components\WebUser',
],
все! теперь в can можно ловить строку из roles и както ее обрабатывать например так :
public function can($permissionName, $params = [], $allowCaching = true)
{
if( $permissionName === "admin" and $this->identity->superuser ){
return true;
}
Буквально пару месяцев назад все работало без этой "магии". Standalone приложение, права photos, wall, groups и все было нормально. Недавно чтото изменилось или что?
PDO это надстройка над запросами перед отправлением к базе. Это интерфейс позволяющий работать теми же запросами и иметь возможность изменить тип базы данных, но на практике это редко встречается. Возьми файл например от DLE там весь набор функции для работы с базой www.sendspace.com/file/3rhhgo
select * from post left join users on users.id=post.user_id where id='123'
лучше чем
select * from post where id='123'
и
select * from users where id='{post["user_id"]}'