CityController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\City;
  5. use App\Models\CityTranslation;
  6. use App\Models\State;
  7. class CityController extends Controller
  8. {
  9. /**
  10. * Display a listing of the resource.
  11. *
  12. * @return \Illuminate\Http\Response
  13. */
  14. public function index(Request $request)
  15. {
  16. $sort_city = $request->sort_city;
  17. $sort_state = $request->sort_state;
  18. $cities_queries = City::query();
  19. if($request->sort_city) {
  20. $cities_queries->where('name', 'like', "%$sort_city%");
  21. }
  22. if($request->sort_state) {
  23. $cities_queries->where('state_id', $request->sort_state);
  24. }
  25. $cities = $cities_queries->orderBy('status', 'desc')->paginate(15);
  26. $states = State::where('status', 1)->get();
  27. return view('backend.setup_configurations.cities.index', compact('cities', 'states', 'sort_city', 'sort_state'));
  28. }
  29. /**
  30. * Show the form for creating a new resource.
  31. *
  32. * @return \Illuminate\Http\Response
  33. */
  34. public function create()
  35. {
  36. }
  37. /**
  38. * Store a newly created resource in storage.
  39. *
  40. * @param \Illuminate\Http\Request $request
  41. * @return \Illuminate\Http\Response
  42. */
  43. public function store(Request $request)
  44. {
  45. $city = new City;
  46. $city->name = $request->name;
  47. $city->cost = $request->cost;
  48. $city->state_id = $request->state_id;
  49. $city->save();
  50. flash(translate('City has been inserted successfully'))->success();
  51. return back();
  52. }
  53. /**
  54. * Display the specified resource.
  55. *
  56. * @param int $id
  57. * @return \Illuminate\Http\Response
  58. */
  59. public function edit(Request $request, $id)
  60. {
  61. $lang = $request->lang;
  62. $city = City::findOrFail($id);
  63. $states = State::where('status', 1)->get();
  64. return view('backend.setup_configurations.cities.edit', compact('city', 'lang', 'states'));
  65. }
  66. /**
  67. * Update the specified resource in storage.
  68. *
  69. * @param \Illuminate\Http\Request $request
  70. * @param int $id
  71. * @return \Illuminate\Http\Response
  72. */
  73. public function update(Request $request, $id)
  74. {
  75. $city = City::findOrFail($id);
  76. if($request->lang == env("DEFAULT_LANGUAGE")){
  77. $city->name = $request->name;
  78. }
  79. $city->state_id = $request->state_id;
  80. $city->cost = $request->cost;
  81. $city->save();
  82. $city_translation = CityTranslation::firstOrNew(['lang' => $request->lang, 'city_id' => $city->id]);
  83. $city_translation->name = $request->name;
  84. $city_translation->save();
  85. flash(translate('City has been updated successfully'))->success();
  86. return back();
  87. }
  88. /**
  89. * Remove the specified resource from storage.
  90. *
  91. * @param int $id
  92. * @return \Illuminate\Http\Response
  93. */
  94. public function destroy($id)
  95. {
  96. $city = City::findOrFail($id);
  97. foreach ($city->city_translations as $key => $city_translation) {
  98. $city_translation->delete();
  99. }
  100. City::destroy($id);
  101. flash(translate('City has been deleted successfully'))->success();
  102. return redirect()->route('cities.index');
  103. }
  104. public function updateStatus(Request $request){
  105. $city = City::findOrFail($request->id);
  106. $city->status = $request->status;
  107. $city->save();
  108. return 1;
  109. }
  110. }