Почему-то не показываются отмеченные чек-боксы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Почему-то не показываются отмеченные чек-боксы

Сообщение kwasti »

в контроллере

Код: Выделить всё

$model = new PermissionsModel();
        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->name]);
        }
        $auth =Yii::$app->authManager;
        $permisions = $auth->getPermissions();
        $model->id= $id;
        $role = $auth->getRole($id);
        $model->description=$role->description;
        $model->permissions = ArrayHelper::map($auth->getPermissionsByRole($id),'name','description');

        return $this->render('permission', [
            'model' => $model,
            'permissions'=>$permisions,
        ]);
модель:

Код: Выделить всё

class PermissionsModel extends Model
{
    public $id;
    public $name;
    public $permissions;
    public $description;
форма:

Код: Выделить всё

  <?php $form = ActiveForm::begin(); ?>
        <?= $form->field($model,'permissions')->label(THelper::tAppAdmin('Permissions'))
            ->checkboxList(\yii\helpers\ArrayHelper::map($permissions,'name','description')
        ) ?>
        
а это содержимое модели:

Код: Выделить всё

object(common\modules\engine\modules\admin\models\PermissionsModel)#124 (10) {
 ["id"]=> string(5) "admin" 
 ["name"]=> NULL 
 ["permissions"]=> array(10) {
 
["createPost"]=> string(13) "Create a post" 
["createUser"]=> string(13) "Create a User" 
["deletePost"]=> string(11) "Delete post" 
["deleteUser"]=> string(11) "Delete User"
["readPost"]=> string(9) "Read post"
["readUser"]=> string(16) "Read User Detail" 
["selectPost"]=> string(11) "Select post" 
и т.д.
}

в итоге на форме выводится список чек боксов но ни один не отмечен. по идее должны быть отмечены все.
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Почему-то не показываются отмеченные чек-боксы

Сообщение kwasti »

изменил вьюшку на явно заданные значения. а толку все равно ноль.

Код: Выделить всё


$ar=['a1'=>'a1',
    'a2'=>'a2',
    'a3'=>'a3',
    'a4'=>'a4',
];
$model->permissions= ['a2'=>'a2','a3'=>'a3'];
?>
<div class="auth-role-item-create">
    <div class="auth-role-item-form">
        <?php $form = ActiveForm::begin(); ?>
        <?= $form->field($model,'permissions[]')->checkboxList($ar) ?>
        <?php ActiveForm::end(); ?>
    </div>
</div>
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Почему-то не показываются отмеченные чек-боксы

Сообщение andku83 »

вот так работает:

Код: Выделить всё

        <?= $form->field($model,'permissions')->checkboxList($ar) ?>
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Почему-то не показываются отмеченные чек-боксы

Сообщение kwasti »

у меня так тоже не работало,
стало работать только так:

Код: Выделить всё

        <?= $form->field($model,'permissions[]')->label(THelper::tAppAdmin('Permissions'))
            ->checkboxList(\yii\helpers\ArrayHelper::map($permissions,'name','description'),
            ['value'=>$checked]

        ) ?>
Ответить