diff --git a/index.php b/index.php index 17249ee..a21a960 100644 --- a/index.php +++ b/index.php @@ -34,14 +34,29 @@ $capsule->bootEloquent(); $schema = $capsule->schema(); -$dataProvider = new EloquentDataProvider(\Itguild\EloquentTable\models\User::class, [ +//$dataProvider = new EloquentDataProvider(\Itguild\EloquentTable\models\User::class, [ +// 'currentPage' => 1, +// 'perPage' => 3, +// 'params' => ["class" => "table table-bordered", "border" => "2"], +// 'baseUrl' => "/admin/user", +//]); +//$table = new ListJsonTable($dataProvider->getJson()); +// +//$table->addAction(\Itguild\Tables\ActionColumn\EditActionColumn::class); +//$table->create(); +//$table->render(); + +$table = new \Itguild\EloquentTable\ListEloquentTable([ + 'model' => \Itguild\EloquentTable\models\User::class, 'currentPage' => 1, 'perPage' => 3, 'params' => ["class" => "table table-bordered", "border" => "2"], 'baseUrl' => "/admin/user", + 'actions' => [ + \Itguild\Tables\ActionColumn\ViewActionColumn::class, + \Itguild\Tables\ActionColumn\EditActionColumn::class + ] ]); -$table = new ListJsonTable($dataProvider->getJson()); -$table->addAction(\Itguild\Tables\ActionColumn\EditActionColumn::class); $table->create(); $table->render(); \ No newline at end of file diff --git a/src/EloquentDataProvider.php b/src/EloquentDataProvider.php index 75313fc..45c8729 100644 --- a/src/EloquentDataProvider.php +++ b/src/EloquentDataProvider.php @@ -30,8 +30,8 @@ class EloquentDataProvider $this->queryBuilder = $source::query(); $model = new $source(); } elseif (is_object($source)) { - echo "
"; - print_r($source);die(); +// echo ""; +// print_r($source);die(); $this->queryBuilder = $source; $model = $source->getModel(); } else { diff --git a/src/ListEloquentTable.php b/src/ListEloquentTable.php new file mode 100644 index 0000000..cb07730 --- /dev/null +++ b/src/ListEloquentTable.php @@ -0,0 +1,66 @@ +model = $options['model']; +// $this->currentPage = $options['currentPage'] ?? 1; +// $this->perPage = $options['perPage'] ?? 5; +// $this->params = $options['params'] ?? ''; +// $this->baseUrl = $options['base_url'] ?? ''; + $this->options['currentPage'] = $options['currentPage'] ?? 1; + $this->options['perPage'] = $options['perPage'] ?? 5; + $this->options['params'] = $options['params'] ?? []; + $this->options['baseUrl'] = $options['baseUrl'] ?? ''; + $this->options['actions'] = $options['actions'] ?? []; + $this->dataProvider = new EloquentDataProvider($this->model, $this->options); + $this->table = new ListJsonTable($this->dataProvider->getJson()); + } + + /** + * @throws Exception + */ + public function create(): void + { + if (isset($this->options['actions'])) + { + $this->getActions(); + } + $this->table->create(); + } + + private function getActions(): void + { + foreach ($this->options['actions'] as $action) + { + $this->table->addAction($action); + } + } + + public function render(): void + { + $this->table->render(); + } +} \ No newline at end of file