1

How to create a model which is have a default value from another array.

I mean, if I have an array like this :

[
0 => [
    'remarks' => 'ACETONE - '
    'material' => '70.00'
]
1 => [
    'remarks' => 'Leak Test 1 Bar'
    'material' => '13.50'
]
2 => [
    'remarks' => 'Foot Valve Incapsulated O-Ring 1 pcs - Replace'
    'material' => '6.70'
]
3 => [
    'remarks' => 'Seal Teflon 3\" Bottom Valve - Replace'
    'material' => '10.50'
]
4 => [
    'remarks' => 'Gasket Carton Bottom Valve 4 Hole 2 pcs - Replace'
    'material' => '14.60'
]
]

You know, The model just store one default value like this :

$modelJobOrderDetails =[new JobOrderDetail([
                'remarks' => ?? get from array above
                'material' => ?? get from array above
            ])] ;

How about to store those array into this model ? Please advise.

2 Answers 2

6

read this: http://www.yiiframework.com/doc-2.0/yii-base-model.html#load()-detail

$model = new JobOrderDetail();
$model->load($arrayData, ''); // '' = formname or empty string

this way, you make sure only the (safe) attributes you want are loaded. $arrayData is an array of key/value pairs for ONE model. you have to iterate yourself.

Sign up to request clarification or add additional context in comments.

1 Comment

Coming from the future, your solution saved me a lot of time. Thank you, kind stranger!
1

assuming you have

 $myArray =    [
      0 => [
          'remarks' => 'ACETONE - '
          'material' => '70.00'
      ]
      1 => [
          'remarks' => 'Leak Test 1 Bar'
          'material' => '13.50'
      ]
      2 => [
          'remarks' => 'Foot Valve Incapsulated O-Ring 1 pcs - Replace'
          'material' => '6.70'
      ]
      3 => [
          'remarks' => 'Seal Teflon 3\" Bottom Valve - Replace'
          'material' => '10.50'
      ]
      4 => [
          'remarks' => 'Gasket Carton Bottom Valve 4 Hole 2 pcs - Replace'
          'material' => '14.60'
      ]
    ];

you could iterate over your array an poplulatin using model-attributes

  foreach($mymodel as $key = $value)        {
      $models[$key] = new JobOrderDetail();
      $models[$key]->attributes = $value;

  } 

http://www.yiiframework.com/doc-2.0/guide-structure-models.html#massive-assignment

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.