AirportController.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Airport;
  4. use Illuminate\Http\Request;
  5. use App\Models\Plane;
  6. use Illuminate\Support\Facades\DB;
  7. class AirportController extends Controller
  8. {
  9. public function getAll(Request $request){
  10. $airports = Airport::all();
  11. $planes = Plane::all();
  12. return view("airport", array(
  13. "airports" => $airports,));
  14. }
  15. public function createNew(Request $request) {
  16. $data = $request->validate(["name" => "required|max:255",
  17. "city" => "required|max:255",]);
  18. $new_airport = Airport::create($data);
  19. $planes = $request->planes;
  20. DB::table('airports_planes')->where('airport_id', $new_airport->id)->delete();
  21. if ($planes) {
  22. foreach ($planes as $plane) {
  23. DB::table('airports_planes')->insert(array(
  24. "plane_id" => $plane,
  25. "airport_id" => $new_airport->id
  26. ));
  27. };
  28. }
  29. return redirect('airport/');
  30. }
  31. public function editForm(Request $request) {
  32. $instanceId = $request->instanceId;
  33. if ($instanceId) {
  34. $obj = Airport::where('id', $instanceId)->first();
  35. }
  36. else {
  37. $obj = new Airport();
  38. }
  39. $planes = Plane::all();
  40. return view('airportForm', array(
  41. "obj" => $obj,
  42. "planes" => $planes
  43. ));
  44. }
  45. public function editInstance(Request $request) {
  46. $data = $request->validate(["name" => "required|max:255",
  47. "city" => "required|max:255",]);
  48. $obj = Airport::where('id', $request->instanceId)->first()->update($data);
  49. $planes = $request->planes;
  50. DB::table('airports_planes')->where('airport_id', $request->instanceId)->delete();
  51. if ($planes) {
  52. foreach ($planes as $plane) {
  53. DB::table('airports_planes')->insert(array(
  54. "plane_id" => $plane,
  55. "airport_id" => $request->instanceId
  56. ));
  57. };
  58. }
  59. return redirect('/airport');
  60. }
  61. }