2017-01-23 5 views
0

私が取得しています:コール() - Laravel

を「87 UploadController.phpラインにブール 上)(メンバ関数形式にコール」です行58〜93、太字87:

set_time_limit(120); 
    $now = (new \DateTime)->format('Y-m-d H:i:s'); 
    $nowYmd = (new \DateTime())->format('Y-m-d'); 
    foreach ($rows as $row) { 
     $deviceLog = []; 
     $deviceLog['installation_id'] = $this->parseForNull((int)$row[0]); 
     $deviceLog['device_id'] = $devicesSerialToId[$row[1]]; 
     $deviceLog['2'] = $this->parseForNull($row[2]); 
     $deviceLog['3'] = $this->parseForNull($row[3]); 
     $deviceLog['4'] = $row[4]; 
     $deviceLog['5'] = $this->parseForNull($row[5]); 
     $deviceLog['6'] = $this->parseForNull($row[6]); 
     $deviceLog['7'] = $this->parseForNull($row[7]); 
     $deviceLog['8'] = $this->parseBoolean($row[8]); 
     $deviceLog['9'] = $this->parseBoolean($row[9]); 
     $deviceLog['10'] = $this->parseBoolean($row[10]); 
     $deviceLog['11'] = $this->parseForNull(intval($row[11])); 
     $deviceLog['12'] = $this->parseForNull($row[12]); 
     $deviceLog['13'] = $this->parseForNull($row[13]); 
     $deviceLog['14'] = $this->parseForNull($row[14]); 
     $deviceLog['15'] = $this->parseForNull($row[15]); 
     $deviceLog['16'] = $this->parseForNull($row[16]); 
     $deviceLog['17'] = $this->parseForNull($row[17]); 
     $deviceLog['18'] = $this->parseBoolean($row[18]); 
     $deviceLog['19'] = $this->parseBoolean($row[19]); 
     $deviceLog['20'] = $this->parseForNull($row[20]); 
     $deviceLog['21'] = $this->parseBoolean($row[21]); 
     if (!empty($row[22])) { 
      $date = \DateTime::createFromFormat('d-M-y', $row[22]); 
      **if($date->format('Y-m-d') != $nowYmd) {** 
       continue; 
      } 
      $deviceLog['last_seen'] = $date->format('Y-m-d'); 
     } else { 
      continue; 
     } 

これを修正するにはどうすればよいですか?アップロードはcsvファイルで、日付はヌル/ブランコか、次の形式(23-jan-17)で指定できます。このコードでわかるように、last_seenの日付が今日ではない場合、データはデータベースに格納されていないはずです。

アイデア? laravelを実行中。

答えて

0

$ row [22]のチェック値。 nullの場合はエラーが発生します。

if (!empty($row[22])) { 
     $date = \DateTime::createFromFormat('d-M-y', $row[22]); 
     if(!$date || ($date && ($date->format('Y-m-d') != $nowYmd))) { 
      continue; 
     } 
     $deviceLog['last_seen'] = $date->format('Y-m-d'); 
    } else { 
     continue; 
    } 
+0

私はあなたが何かここにいると思いますが、悲しいことに "if(!empty($ row [22])&& $ row [22]!= '')"と同じエラーが発生します。 これを修正する手掛かりはありますか? – Stoff

+0

$ row [22]の値は何ですか? – mith

+0

値は、1月23日であるはずです。そうでない場合もあります。しかし、このコードは今日の日付などを表示していない場合は、行を保存しないようになっています:) – Stoff