From 87e890ba64855372304d159213fdbdd7549a7645 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 21 Feb 2018 22:03:06 +0800 Subject: [PATCH] Change project routes to use route model binding --- .../Controllers/Projects/ProjectsController.php | 41 +++++++++------------- routes/web/projects.php | 18 +++++----- 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/app/Http/Controllers/Projects/ProjectsController.php b/app/Http/Controllers/Projects/ProjectsController.php index 5db7f81..a354581 100755 --- a/app/Http/Controllers/Projects/ProjectsController.php +++ b/app/Http/Controllers/Projects/ProjectsController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Projects; +use App\Entities\Projects\Project; use App\Entities\Projects\ProjectsRepository; use App\Http\Controllers\Controller; use App\Http\Requests\Projects\CreateRequest; @@ -48,43 +49,38 @@ class ProjectsController extends Controller $project = $this->repo->create($request->except('_token')); flash()->success(trans('project.created')); - return redirect()->route('projects.show', $project->id); + return redirect()->route('projects.show', $project); } - public function show($projectId) + public function show(Project $project) { - $project = $this->repo->requireById($projectId); - return view('projects.show', compact('project')); } - public function edit($projectId) + public function edit(Project $project) { - $project = $this->repo->requireById($projectId); $customers = $this->repo->getCustomersList(); return view('projects.edit', compact('project', 'customers')); } - public function update(UpdateRequest $request, $projectId) + public function update(UpdateRequest $request, Project $project) { - $project = $this->repo->update($request->except(['_method', '_token']), $projectId); + $project = $this->repo->update($request->except(['_method', '_token']), $project->id); flash()->success(trans('project.updated')); - return redirect()->route('projects.edit', $projectId); + return redirect()->route('projects.edit', $project); } - public function delete($projectId) + public function delete(Project $project) { - $project = $this->repo->requireById($projectId); - return view('projects.delete', compact('project')); } - public function destroy(DeleteRequest $request, $projectId) + public function destroy(DeleteRequest $request, Project $project) { - if ($projectId == $request->get('project_id')) { - $this->repo->delete($projectId); + if ($project->id == $request->get('project_id')) { + $this->repo->delete($project->id); flash()->success(trans('project.deleted')); } else { flash()->error(trans('project.undeleted')); @@ -93,30 +89,27 @@ class ProjectsController extends Controller return redirect()->route('projects.index'); } - public function subscriptions($projectId) + public function subscriptions(Project $project) { - $project = $this->repo->requireById($projectId); - return view('projects.subscriptions', compact('project')); } - public function payments($projectId) + public function payments(Project $project) { - $project = $this->repo->requireById($projectId); $project->load('payments.partner'); return view('projects.payments', compact('project')); } - public function statusUpdate(Request $request, $projectId) + public function statusUpdate(Request $request, Project $project) { - $project = $this->repo->updateStatus($request->get('status_id'), $projectId); + $project = $this->repo->updateStatus($request->get('status_id'), $project->id); flash()->success(trans('project.updated')); - return redirect()->route('projects.show', $projectId); + return redirect()->route('projects.show', $project); } - public function jobsReorder(Request $request, $projectId) + public function jobsReorder(Request $request, Project $project) { if ($request->ajax()) { $data = $this->repo->jobsReorder($request->get('postData')); diff --git a/routes/web/projects.php b/routes/web/projects.php index 7a0ccce..c9bac00 100644 --- a/routes/web/projects.php +++ b/routes/web/projects.php @@ -4,15 +4,15 @@ Route::group(['middleware' => ['web', 'role:admin'], 'namespace' => 'Projects'], /* * Projects Routes */ - Route::get('projects/{id}/delete', ['as' => 'projects.delete', 'uses' => 'ProjectsController@delete']); - Route::get('projects/{id}/subscriptions', ['as' => 'projects.subscriptions', 'uses' => 'ProjectsController@subscriptions']); - Route::patch('projects/{id}/status-update', ['as' => 'projects.status-update', 'uses' => 'ProjectsController@statusUpdate']); + Route::get('projects/{project}/delete', ['as' => 'projects.delete', 'uses' => 'ProjectsController@delete']); + Route::get('projects/{project}/subscriptions', ['as' => 'projects.subscriptions', 'uses' => 'ProjectsController@subscriptions']); + Route::patch('projects/{project}/status-update', ['as' => 'projects.status-update', 'uses' => 'ProjectsController@statusUpdate']); Route::resource('projects', 'ProjectsController'); /* * Project Payments Routes */ - Route::get('projects/{id}/payments', ['as' => 'projects.payments', 'uses' => 'ProjectsController@payments']); + Route::get('projects/{project}/payments', ['as' => 'projects.payments', 'uses' => 'ProjectsController@payments']); /* * Project Fees Routes @@ -30,12 +30,12 @@ Route::group(['middleware' => ['web', 'role:admin'], 'namespace' => 'Projects'], */ Route::get('projects/{project}/jobs-export/{type?}', ['as' => 'projects.jobs-export', 'uses' => 'JobsController@jobsExport']); Route::get('projects/{project}/job-progress-export/{type?}', ['as' => 'projects.job-progress-export', 'uses' => 'JobsController@jobProgressExport']); - Route::get('projects/{id}/jobs/create', ['as' => 'projects.jobs.create', 'uses' => 'JobsController@create']); - Route::post('projects/{id}/jobs', ['as' => 'projects.jobs.store', 'uses' => 'JobsController@store']); - Route::get('projects/{id}/jobs/add-from-other-project', ['as' => 'projects.jobs.add-from-other-project', 'uses' => 'JobsController@addFromOtherProject']); - Route::post('projects/{id}/jobs/store-from-other-project', ['as' => 'projects.jobs.store-from-other-project', 'uses' => 'JobsController@storeFromOtherProject']); + Route::get('projects/{project}/jobs/create', ['as' => 'projects.jobs.create', 'uses' => 'JobsController@create']); + Route::post('projects/{project}/jobs', ['as' => 'projects.jobs.store', 'uses' => 'JobsController@store']); + Route::get('projects/{project}/jobs/add-from-other-project', ['as' => 'projects.jobs.add-from-other-project', 'uses' => 'JobsController@addFromOtherProject']); + Route::post('projects/{project}/jobs/store-from-other-project', ['as' => 'projects.jobs.store-from-other-project', 'uses' => 'JobsController@storeFromOtherProject']); Route::get('projects/{project}/jobs', ['as' => 'projects.jobs.index', 'uses' => 'JobsController@index']); - Route::post('projects/{id}/jobs-reorder', ['as' => 'projects.jobs-reorder', 'uses' => 'ProjectsController@jobsReorder']); + Route::post('projects/{project}/jobs-reorder', ['as' => 'projects.jobs-reorder', 'uses' => 'ProjectsController@jobsReorder']); /* * Tasks Routes