/** * articlesとphotosへ格納 * @param array $data */ public function create(array $data) { DB::transaction(function () use($data) { $this->article->newInstance(); $this->article->{'res_id'} = $data['parent_id']; $this->article->{'name'} = $data['name']; $this->article->{'age'} = $data['age']; $this->article->{'sex'} = $data['sex']; $this->article->{'prefectures'} = $data['prefectures']; $this->article->{'title'} = $data['title']; $this->article->{'body'} = $data['body']; $this->article->{'mail'} = $data['mail']; $this->article->{'password'} = $data['password']; $this->article->{'ip_address'} = $data['client_ip']; $this->article->{'checked'} = 0; $this->article->save(); // 返信の場合、親のupdate_atを更新とお知らせメール送信 if ($this->article->{'res_id'} !== '0') { $article = $this->article->newInstance(); $parentArticle = $article->find($this->article->{'res_id'}); $parentArticle->updated_at = Carbon::now(); $parentArticle->save(); if ($parentArticle->mail) { Log::info('replay mail set queue. id: ' . $this->article->{'id'}); $this->dispatch(new ReplySendEmail($parentArticle, $this->article)); } } $photos = []; for ($i = 1; $i <= 2; $i++) { if (isset($data['file' . $i])) { $file1Result = $this->getExifReadData($data['file' . $i]); if ($file1Result) { $photos[] = new Photo($file1Result); } } } if ($photos) { $this->article->photos()->saveMany($photos); } $interests = $this->interest->all(); foreach ($interests as $row) { if (isset($data[$row->name_tag])) { $this->article->interests()->attach($data[$row->name_tag]); } } // 新規記事・返信でインクリメント $this->analysisService->newPostIncrement(); // tweet $this->dispatch(new TwetterTweet($this->article)); }); }