/** * データベースへの登録アクション * @return Ambigous <\Illuminate\Routing\Redirector, \Illuminate\Http\RedirectResponse, mixed, \Illuminate\Container\static> */ public function insert() { $thread = new thread(); //バリデーションの設定 $validation = Validator::make(['thread_id' => Input::get('thread_id'), 'thread' => Input::get('thread'), 'content' => Input::get('content'), 'image' => Input::file('image')], ['thread_id' => 'integer', 'thread' => 'string', 'content' => 'required|max:512', 'image' => 'image'], ['required' => '内容は入力必須項目です', 'image' => 'jpg,png,gif以外の画像をアップロードしないでください']); //バリデーション失敗時 if ($validation->fails()) { return redirect()->back()->withErrors($validation->errors()); } //ユーザ名 $user = Input::has('user') ? Input::get('user') : 'noname'; // アップロード画像を取得 $image = Input::file('image'); if (Input::file('image')) { // ファイル名を生成し画像をアップロード $name = md5(sha1(uniqid(mt_rand(), true))) . '.' . $image->getClientOriginalExtension(); $upload = $image->move('media', $name); $upload = preg_replace('/media\\\\/', 'media/', $upload); } if (Input::has('thread') && Input::has('content')) { //スレッド作成からのリクエスト //スレッドのタイトルが被らないかどうかチェック $threads = $thread->all(array('thread')); $threadName = Input::get('thread'); foreach ($threads as $val) { if ($val['thread'] == $threadName) { return back()->withInput()->withErrors(array('同じスレッド名が存在します')); } } //スレッド情報をデータベースへ登録 $thread->thread = $threadName; $thread->user = $user; $thread->save(); $threads = $thread->where('thread', '=', $threadName)->get(); $thread_id = $threads[0]['id']; $response = NULL; } else { if (Input::has('thread_id') && Input::has('content')) { //スレッド詳細からのリクエスト $thread_id = Input::get('thread_id'); $response = ctype_digit(Input::get('response')) ? Input::get('response') : ''; } else { return back()->withInput()->withErrors(array('スレッド名と内容を入力してください')); } } //投稿の登録 $result = isset($upload) && $upload ? Comment::insertComment($thread_id, $user, Input::get('content'), $response, $upload) : Comment::insertComment($thread_id, $user, Input::get('content'), $response); //スレッド内からのリクエストかどうかをチェック return !Input::has('thread') ? redirect('/thread?id=' . $thread_id) : redirect('/'); }