ProvinceController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Http\Controllers\Admin\Provinces;
  3. use App\Shop\Provinces\Repositories\Interfaces\ProvinceRepositoryInterface;
  4. use App\Http\Controllers\Controller;
  5. use App\Shop\Provinces\Repositories\ProvinceRepository;
  6. use Illuminate\Http\Request;
  7. class ProvinceController extends Controller
  8. {
  9. protected $provinceRepo;
  10. public function __construct(ProvinceRepositoryInterface $provinceRepository)
  11. {
  12. $this->provinceRepo = $provinceRepository;
  13. }
  14. /**
  15. * Display the specified resource.
  16. *
  17. * @param int $provinceId
  18. * @param int $countryId
  19. * @return \Illuminate\Http\Response
  20. */
  21. public function show(int $countryId, int $provinceId)
  22. {
  23. $province = $this->provinceRepo->findProvinceById($provinceId);
  24. $cities = $this->provinceRepo->listCities($provinceId);
  25. return view('admin.provinces.show', [
  26. 'province' => $province,
  27. 'countryId' => $countryId,
  28. 'cities' => $this->provinceRepo->paginateArrayResults(collect($cities)->toArray())
  29. ]);
  30. }
  31. /**
  32. * Show the form for editing the specified resource.
  33. *
  34. * @param int $provinceId
  35. * @param int $countryId
  36. * @return \Illuminate\Http\Response
  37. */
  38. public function edit(int $countryId, int $provinceId)
  39. {
  40. return view('admin.provinces.edit', [
  41. 'province' => $this->provinceRepo->findProvinceById($provinceId),
  42. 'countryId' => $countryId
  43. ]);
  44. }
  45. /**
  46. * Update the specified resource in storage.
  47. *
  48. * @param Request $request
  49. * @param int $provinceId
  50. * @param int $countryId
  51. * @return \Illuminate\Http\Response
  52. */
  53. public function update(Request $request, int $countryId, int $provinceId)
  54. {
  55. $province = $this->provinceRepo->findProvinceById($provinceId);
  56. $update = new ProvinceRepository($province);
  57. $update->updateProvince($request->except('_method', '_token'));
  58. $request->session()->flash('message', 'Update successful');
  59. return redirect()->route('admin.countries.provinces.edit', [$countryId, $provinceId]);
  60. }
  61. }