RegionController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Region;
  5. use Illuminate\Support\Facades\Gate;
  6. class RegionController extends Controller
  7. {
  8. use AsyncResponse;
  9. public function get()
  10. {
  11. $type = request("type");
  12. $regions = Region::query();
  13. if ($type)$regions->where("type",$type);
  14. $this->success($regions->get());
  15. }
  16. public function index()
  17. {
  18. if(!Gate::allows("地域"))return view("exception.authority");
  19. $regions = Region::withTrashed()->get();
  20. return view("maintenance.region.index",compact("regions"));
  21. }
  22. public function store()
  23. {
  24. $parent = request("parent_id");
  25. $type = request("type");
  26. if (!$type)$this->error("非法参数");
  27. $name = app("RegionService")->formatName(request("name"),$type);
  28. if (!$name)$this->error("非法参数");
  29. $region = Region::withTrashed()->where("name",$name)->where("type",$type)->first();
  30. if ($region)$this->error("已经存在,无需重复录入");
  31. $this->success(Region::query()->create([
  32. "name" => $name,
  33. "type" => $type,
  34. "parent_id" => $parent
  35. ]));
  36. }
  37. }