2016-12-28 7 views
0

я следующий код в моей модели:Как сохранить имена элементов массива в базе данных?

public function getData($property) 
    { 
     $data = array(
      'a_4_1' => array(
       'RUB', 
       'USD', 
       'JPY', 
      ), 

     ); 
     return $data[$property]; 
    } 

И на мой взгляд:

<?= $form->labelEx($model, 'a_4_1', array('class' => 'col-xs-12 col-sm-2 control-label')) ?> 
    <div class="col-xs-12 col-sm-3"> 
     <?= $form->dropDownList($model, 'a_4_1',$model->getData('d_4_1'), array('class' => 'form-control')) ?> 
     <?= $form->error($model, 'a_4_1') ?> 
    </div> 

Когда я сохранить его в базу данных, она сохраняет данные в целочисленном формате (например, 1,2, ..) Мне нужно сохранить имена элементов массива в базе данных (например, RUB, USD) (не целочисленные числа). Как мне это сделать?

+0

Код контроллера – sm1979

+0

Он не имеет отношения к контроллеру – phpdev

ответ

1

array_combine() использование, чтобы изменить значение ключа вашего массива, как показано ниже:

array_combine ($ модели-> GetData ('d_4_1'), $ модели-> GetData ('d_4_1'))

<?= $form->labelEx($model, 'a_4_1', array('class' => 'col-xs-12 col-sm-2 control-label')) ?> 
    <div class="col-xs-12 col-sm-3"> 
     <?= $form->dropDownList($model, 'a_4_1',array_combine($model->getData('d_4_1'),$model->getData('d_4_1')), array('class' => 'form-control')) ?> 
     <?= $form->error($model, 'a_4_1') ?> 
</div>