使用CSV文件添加项目 - Laravel

时间:2017-11-14 11:28:14

标签: php laravel

我可以使用group id使用save function将产品保存到我的论坛中  但现在我想用excel文件做到这一点。我遇到了如何做到这一点的问题。任何帮助将不胜感激。谢谢。

控制器

 public function save($id, Request $request)
 {
    $group = Group::whereId($id)->firstorFail();
    $product = new Product(array(
        'name'  => $request->get('name'),
        'price' => $request->get('price'),
    ));

    $group->products()->save($product);
}

public function import($id, Request $request)
{
   $group = Group::whereId($id)->firstorFail();

   if($request->file('imported-file'))
   {
             $path = $request->file('imported-file')->getRealPath();
             $data = Excel::load($path, function($reader)
       {
             })->get();

       if(!empty($data) && $data->count())
       {
         foreach ($data->toArray() as $row)
         {
           if(!empty($row))
           {
             $dataArray[] =
             [
               'name' => $row['name'],
               'price' => $row['price'],              
             ];
           }
       }

       if(!empty($dataArray))
       {
          Item::insert($dataArray);

        }
      }
    }

}

路线

Route::post('import/{id?}', 'ItemController@import');

产品型号 的产品

  public function groups()
        {
            return $this->belongsToMany('App\Group','group_product','product_id','group_id')
            ->withTimestamps();

       }

小组模型

 public function products()
{
    return $this->belongsToMany('App\Product','group_product','group_id','product_id')
  }

1 个答案:

答案 0 :(得分:0)

你需要saveMany

package com.example.adityaprakash.test;

public class MqttExampleOptions {
    String projectId;
    String registryId;
    String deviceId;
    String privateKeyFile;
    String algorithm;
    String cloudRegion;
    int numMessages;
    String mqttBridgeHostname;
    short mqttBridgePort;
    String messageType;

    /** Construct an MqttExampleOptions class. */
    public static MqttExampleOptions values() {

        try {

            MqttExampleOptions res = new MqttExampleOptions();

            res.projectId = "_";
            res.registryId = "_";
            res.deviceId = "_";
            res.privateKeyFile = "com/example/adityaprakash/test/rsa_private.pem";
            res.algorithm = "RS256";
            res.cloudRegion = "asia-east1";
            res.numMessages = 100;
            res.mqttBridgeHostname = "mqtt.googleapis.com";
            res.mqttBridgePort = 8883;
            res.messageType = "event";
            return res;

        } catch (Exception e) {
            System.err.println(e.getMessage());
            return null;
        }
    }
}