laravolt/suitable
最新稳定版本:v4.0.2
Composer 安装命令:
composer require laravolt/suitable
包简介
Semantic-UI table builder for Laravel application
README 文档
README
Semantic-UI table builder for Laravel.
Version Compatibility
| Laravel | Suitable |
|---|---|
| 5.2.x | 1.x |
| 5.3.x | 2.x |
| 5.4.x | 2.x |
| 5.5.x | 2.x |
| 5.6.x | 2.x |
| 5.7.x | 2.x |
| 5.8.x | 3.x |
Installation
Install Package
composer require laravolt/suitable
Service Provider
Skip this step for Laravel >= 5.5.
Laravolt\Suitable\ServiceProvider::class,
Facade
Skip this step for Laravel >= 5.5.
'Suitable' => Laravolt\Suitable\Facade::class,
Usage
Basic
{!! Suitable::source(User::all())
->columns([
\Laravolt\Suitable\Columns\Numbering::make('No'),
['header' => 'Nama', 'field' => 'name'],
['header' => 'Email', 'field' => 'email'],
])
->render() !!}
Columns Definition
field
{!! Suitable::source(User::all())
->columns([
['header' => 'Email', 'field' => 'email'],
['header' => 'Bio', 'field' => 'profile.bio'], // nested attribute
])
->render() !!}`
view
{!! Suitable::source(User::all())
->columns([
['header' => 'Address', 'view' => 'components.address'],
])
->render() !!}`
views/components/address.blade.php
<address> Address:<br> {{ $data->address_1 }}<br> {{ $data->address_2 }}<br> {{ $data->city }}, {{ $data->state }} </address>
raw
{!! Suitable::source(User::all())
->columns([
[
'header' => 'Roles',
'raw' => function($data){
// do anything here and don't forget to return String
return $data->roles->implode('name', ', '); // output: "role1, role2, role3"
}
],
])
->render() !!}`
ColumnInterface
{!! Suitable::source(User::all())
->columns([
new \App\Columns\StatusColumn('Status'),
])
->render() !!}
Contract
<?php namespace Laravolt\Suitable\Columns; interface ColumnInterface { public function header(); public function headerAttributes(); public function cell($cell, $collection, $loop); public function cellAttributes($cell); public function sortable(); }
Implementation
StatusColumn.php
<?php namespace App\Columns; use Laravolt\Suitable\Columns\ColumnInterface; class StatusColumn implements ColumnInterface { protected $header; public function __construct($header) { $this->header = $header; } public function header() { return $this->header; } public function cell($cell, $collection, $loop) { return sprintf("<div class='ui label'>%s</div>", $cell->status); } public function headerAttributes() { return []; } public function cellAttributes($cell) { return []; } }
Advance Usage
Auto Detect
<?php namespace App\Http\Controllers; use App\User; use Illuminate\Routing\Controller; use Laravolt\Suitable\Plugins\Pdf; use Laravolt\Suitable\Plugins\Spreadsheet; use Laravolt\Suitable\Tables\BasicTable; class SuitableController extends Controller { public function __invoke() { $table = (new BasicTable(new User())); return $table->view('etalase::example.suitable'); } }
Custom TableView
TableView Definition
<?php namespace App\Table; use Laravolt\Suitable\Columns\Date; use Laravolt\Suitable\Columns\DateTime; use Laravolt\Suitable\Columns\Id; use Laravolt\Suitable\Columns\Numbering; use Laravolt\Suitable\Columns\Text; use Laravolt\Suitable\TableView; class UserTable extends TableView { protected function columns() { return [ Numbering::make('No'), Id::make('id'), Text::make('name'), Text::make('email'), Date::make('created_at'), DateTime::make('updated_at'), ]; } }
<?php namespace Laravolt\Etalase\Http\Controllers; use App\User; use Illuminate\Routing\Controller; use App\Table\UserTable; use Laravolt\Suitable\Plugins\Pdf; use Laravolt\Suitable\Plugins\Spreadsheet; class SuitableController extends Controller { public function __invoke() { $users = User::autoSort()->paginate(5); $userTable = new UserTable($users); $table = $userTable ->plugins([ (new Pdf('users.pdf')), (new Spreadsheet('users.xls')), ]); return $table->view('etalase::example.suitable'); } }
Built In Columns
Laravolt\Suitable\Columns\AvatarLaravolt\Suitable\Columns\BooleanLaravolt\Suitable\Columns\CheckallLaravolt\Suitable\Columns\DateLaravolt\Suitable\Columns\DateTimeLaravolt\Suitable\Columns\IdLaravolt\Suitable\Columns\ImageLaravolt\Suitable\Columns\NumberingLaravolt\Suitable\Columns\RawLaravolt\Suitable\Columns\RestfulButtonLaravolt\Suitable\Columns\TextLaravolt\Suitable\Columns\View
Roadmap
- Rename
TableViewtoTable - Rename Toolbars to
Segment\Item - Rename DropdownFilter to
DropdownLink
统计信息
- 总下载量: 16.7k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 1
- 依赖项目数: 8
- 推荐数: 5
其他信息
- 授权协议: MIT
- 更新时间: 2016-07-16