grid = $grid; } /** * 创建实例 * * @param Grid $grid * @return static */ public static function make(Grid $grid) { return new static($grid); } /** * 添加ID列 * * @param string $label * @return Column */ public function id(string $label = 'ID'): Column { return $this->grid->column('id', $label); } /** * 添加普通列 * * @param string $name * @param string $label * @return Column */ public function column(string $name, string $label): Column { return $this->grid->column($name, $label); } /** * 添加操作列 * * @param string $label * @return Column */ public function actions(string $label = '操作'): Column { return $this->grid->column('actions', $label); } /** * 添加批量操作 * * @param string $title * @param callable $callback * @return Grid\Tools\BatchAction */ public function batchAction(string $title, callable $callback) { return $this->grid->batchActions(function (Grid\Tools\BatchActions $actions) use ($title, $callback) { $actions->add($title, $callback); }); } /** * 添加工具按钮 * * @param string $title * @param callable $callback * @return Grid\Tools\ToolButton */ public function toolButton(string $title, callable $callback) { return $this->grid->tools(function (Grid\Tools $tools) use ($title, $callback) { $tools->append($callback($tools->button($title))); }); } /** * 添加导出按钮 * * @param string $title * @param string $filename * @param array $columns * @return Grid */ public function export(string $title, string $filename, array $columns = []) { return $this->grid->export()->filename($filename)->titles($columns)->rows(function (array $rows) { return $rows; }); } /** * 添加快速创建 * * @param callable $callback * @return Grid\Tools\QuickCreate */ public function quickCreate(callable $callback) { return $this->grid->quickCreate(function (Grid\Tools\QuickCreate $create) use ($callback) { $callback($create); }); } /** * 添加分页 * * @param int $perPage * @return Grid */ public function paginate(int $perPage = 20) { return $this->grid->paginate($perPage); } /** * 添加排序 * * @param string $column * @param string $direction * @return Grid */ public function orderBy(string $column, string $direction = 'desc') { return $this->grid->orderBy($column, $direction); } /** * 添加模型查询 * * @param callable $callback * @return Grid */ public function model(callable $callback) { return $this->grid->model()->where($callback); } }