] * @since [v1.8] * @return View */ public function index() { return View::make('companies/index')->with('companies', Company::all()); } /** * Returns view to create a new company. * * @author [Abdullah Alansari] [] * @since [v1.8] * @return View */ public function create() { return View::make('companies/edit')->with('item', new Company); } /** * Save data from new company form. * * @author [Abdullah Alansari] [] * @since [v1.8] * @return Redirect */ public function store(Request $request) { $company = new Company; $company->name = e($request->input('name')); if ($company->save()) { return redirect()->route('companies.index') ->with('success', trans('admin/companies/message.create.success')); } else { return redirect()->back()->withInput()->withErrors($company->getErrors()); } } /** * Return form to edit existing company. * * @author [Abdullah Alansari] [] * @since [v1.8] * @param int $companyId * @return View */ public function edit($companyId) { if (is_null($item = Company::find($companyId))) { return redirect()->route('companies.index') ->with('error', trans('admin/companies/message.does_not_exist')); } else { return View::make('companies/edit')->with('item', $item); } } /** * Save data from edit company form. * * @author [Abdullah Alansari] [] * @since [v1.8] * @param int $companyId * @return Redirect */ public function update(Request $request, $companyId) { if (is_null($company = Company::find($companyId))) { return redirect()->route('companies.index')->with('error', trans('admin/companies/message.does_not_exist')); } else { $company->name = e($request->input('name')); if ($company->save()) { return redirect()->route('companies.index') ->with('success', trans('admin/companies/message.update.success')); } else { return redirect()->route('companies.edit', ['company' => $companyId]) ->with('error', trans('admin/companies/message.update.error')); } } } /** * Delete company * * @author [Abdullah Alansari] [] * @since [v1.8] * @param int $companyId * @return Redirect */ public function destroy($companyId) { if (is_null($company = Company::find($companyId))) { return redirect()->route('companies.index') ->with('error', trans('admin/companies/message.not_found')); } else { try { $company->delete(); return redirect()->route('companies.index') ->with('success', trans('admin/companies/message.delete.success')); } catch (\Illuminate\Database\QueryException $exception) { /* * NOTE: This happens when there's a foreign key constraint violation * For example when rows in other tables are referencing this company */ if ($exception->getCode() == 23000) { return redirect()->route('companies.index') ->with('error', trans('admin/companies/message.assoc_users')); } else { throw $exception; } } } } }