dsfds2353 2017-09-09 17:42
浏览 72
已采纳

Yii2 - 初始化具有数组值的模型

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条回答 默认 最新

  • doubo4824 2017-09-09 18:19
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • dongyuandou2521 2017-09-11 08:56
    关注

    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.

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 (关键词-聊天软件)
  • ¥15 求大家看看这个编程的编法没有思路啊
  • ¥20 WSL打开图形化程序子窗口无法点击
  • ¥15 Jupyter Notebook 数学公式不渲染
  • ¥20 ERR_CACHE_MISS 确认重新提交表单
  • ¥20 关于vba使用HTMLfile执行js函数问题
  • ¥60 悬赏求解,通过实时现场摄像头的视频图像识别其他对家打出的麻将牌,识别麻将牌,识别牌墙位置,通过识别对家打出了什么牌
  • ¥15 关于#GPU jetson#的pcie驱动开发问题,如何解决?
  • ¥15 stm32f103zet6 串口5无法收发数据
  • ¥15 关于C语言使用线程队列实现多线程并发