public function post_paintings_new() { $input = Input::all(); if (!empty($input['hidden-tags'])) { $input['tags'] = explode(',', $input['hidden-tags']); } try { $validator = new Services\Dashboard\Paintings\Add\Validator($input, 'new'); $validator->publish(); } catch (ValidateException $errors) { return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors->get()); } $errors = new Laravel\Messages(); $extension = File::extension($input['painting_image']['name']); $directory = path('public') . 'uploads/paintings/' . sha1($input['name']); $filename = "original.{$extension}"; $upload_success = ImageUtils::upload('painting_image', $directory, $filename); $image_path = URL::base() . '/uploads/paintings/' . sha1($input['name']); if ($upload_success) { $painting = Painting::create(array('name' => $input['name'], 'dimensions' => $input['dimensions'], 'type' => $input['type'], 'painter' => $input['painter'], 'year' => $input['year'], 'comment' => array_get($input, 'comment', null), 'image_path' => $image_path)); if ($painting) { if (!empty($input['tags'])) { $painting->tag($input['tags']); } return Redirect::to(URL::to_route('dashboard.paintings'))->with('status_success', __('application.painting_added')); } else { $errors->add('errors', __('application.generic_error')); return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors); } } else { $errors->add('errors', __('application.upload_error')); return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors); } }