QuickSearch.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Dcat\Admin\Grid\Tools;
  3. use Dcat\Admin\Admin;
  4. use Dcat\Admin\Grid\Concerns\HasQuickSearch as QuickSearchConcerns;
  5. use Illuminate\Support\Arr;
  6. class QuickSearch extends AbstractTool
  7. {
  8. /**
  9. * @var string
  10. */
  11. protected $view = 'admin::grid.quick-search';
  12. /**
  13. * @var string
  14. */
  15. protected $placeholder = null;
  16. /**
  17. * Set placeholder.
  18. *
  19. * @param string $text
  20. *
  21. * @return $this
  22. */
  23. public function placeholder(?string $text = '')
  24. {
  25. $this->placeholder = $text;
  26. return $this;
  27. }
  28. /**
  29. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  30. */
  31. public function render()
  32. {
  33. $request = request();
  34. $query = $request->query();
  35. Arr::forget($query, [
  36. QuickSearchConcerns::$searchKey,
  37. $this->grid->model()->getPageName(),
  38. '_pjax',
  39. ]);
  40. $vars = [
  41. 'action' => $request->url() . '?' . http_build_query($query),
  42. 'key' => QuickSearchConcerns::$searchKey,
  43. 'value' => request(QuickSearchConcerns::$searchKey),
  44. 'placeholder' => $this->placeholder ?: trans('admin.search'),
  45. ];
  46. return view($this->view, $vars);
  47. }
  48. }