| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | 
							- <?php
 
- namespace Tests\Controllers;
 
- use App\Http\Controllers\Controller;
 
- use Encore\Admin\Controllers\ModelForm;
 
- use Encore\Admin\Facades\Admin;
 
- use Encore\Admin\Form;
 
- use Encore\Admin\Grid;
 
- use Encore\Admin\Layout\Content;
 
- use Tests\Models\Tag;
 
- use Tests\Models\User;
 
- class UserController extends Controller
 
- {
 
-     use ModelForm;
 
-     /**
 
-      * Index interface.
 
-      *
 
-      * @return Content
 
-      */
 
-     public function index()
 
-     {
 
-         return Admin::content(function (Content $content) {
 
-             $content->header('All users');
 
-             $content->description('description');
 
-             $content->body($this->grid());
 
-         });
 
-     }
 
-     /**
 
-      * Edit interface.
 
-      *
 
-      * @param $id
 
-      *
 
-      * @return Content
 
-      */
 
-     public function edit($id)
 
-     {
 
-         return Admin::content(function (Content $content) use ($id) {
 
-             $content->header('Edit user');
 
-             $content->description('description');
 
-             $content->body($this->form()->edit($id));
 
-         });
 
-     }
 
-     /**
 
-      * Create interface.
 
-      *
 
-      * @return Content
 
-      */
 
-     public function create()
 
-     {
 
-         return Admin::content(function (Content $content) {
 
-             $content->header('Create user');
 
-             $content->body($this->form());
 
-         });
 
-     }
 
-     /**
 
-      * Make a grid builder.
 
-      *
 
-      * @return Grid
 
-      */
 
-     protected function grid()
 
-     {
 
-         return Admin::grid(User::class, function (Grid $grid) {
 
-             $grid->id('ID')->sortable();
 
-             $grid->username();
 
-             $grid->email();
 
-             $grid->mobile();
 
-             $grid->full_name();
 
-             $grid->avatar()->display(function ($avatar) {
 
-                 return "<img src='{$avatar}' />";
 
-             });
 
-             $grid->profile()->postcode('Post code');
 
-             $grid->profile()->address();
 
-             $grid->position('Position');
 
-             $grid->profile()->color();
 
-             $grid->profile()->start_at('开始时间');
 
-             $grid->profile()->end_at('结束时间');
 
-             $grid->column('column1_not_in_table')->display(function () {
 
-                 return 'full name:'.$this->full_name;
 
-             });
 
-             $grid->column('column2_not_in_table')->display(function () {
 
-                 return $this->email.'#'.$this->profile['color'];
 
-             });
 
-             $grid->tags()->display(function ($tags) {
 
-                 $tags = collect($tags)->map(function ($tag) {
 
-                     return "<code>{$tag['name']}</code>";
 
-                 })->toArray();
 
-                 return implode('', $tags);
 
-             });
 
-             $grid->created_at();
 
-             $grid->updated_at();
 
-             $grid->filter(function ($filter) {
 
-                 $filter->like('username');
 
-                 $filter->like('email');
 
-                 $filter->like('profile.postcode');
 
-                 $filter->between('profile.start_at')->datetime();
 
-                 $filter->between('profile.end_at')->datetime();
 
-             });
 
-             $grid->actions(function ($actions) {
 
-                 if ($actions->getKey() % 2 == 0) {
 
-                     $actions->append('<a href="/" class="btn btn-xs btn-danger">detail</a>');
 
-                 }
 
-             });
 
-         });
 
-     }
 
-     /**
 
-      * Make a form builder.
 
-      *
 
-      * @return Form
 
-      */
 
-     protected function form()
 
-     {
 
-         Form::extend('map', Form\Field\Map::class);
 
-         Form::extend('editor', Form\Field\Editor::class);
 
-         return Admin::form(User::class, function (Form $form) {
 
-             $form->disableDeletion();
 
-             $form->display('id', 'ID');
 
-             $form->text('username');
 
-             $form->email('email')->rules('required');
 
-             $form->mobile('mobile');
 
-             $form->image('avatar')->help('上传头像', 'fa-image');
 
-             $form->ignore(['password_confirmation']);
 
-             $form->password('password')->rules('confirmed');
 
-             $form->password('password_confirmation');
 
-             $form->divide();
 
-             $form->text('profile.first_name');
 
-             $form->text('profile.last_name');
 
-             $form->text('profile.postcode')->help('Please input your postcode');
 
-             $form->textarea('profile.address')->rows(15);
 
-             $form->map('profile.latitude', 'profile.longitude', 'Position');
 
-             $form->color('profile.color');
 
-             $form->datetime('profile.start_at');
 
-             $form->datetime('profile.end_at');
 
-             $form->multipleSelect('tags', 'Tags')->options(Tag::all()->pluck('name', 'id')); //->rules('max:10|min:3');
 
-             $form->display('created_at', 'Created At');
 
-             $form->display('updated_at', 'Updated At');
 
-             $form->html('<a html-field>html...</a>');
 
-         });
 
-     }
 
- }
 
 
  |