model()->orderByDesc('created_at'); $grid->column('id'); $grid->column('username')->copyable(); $grid->column('tenant.name')->expand(function ($model) { $tenants = $model->tenant()->get()->map(function ($tenant) { return $tenant->only(['id', 'name', 'tenancy_db_connection', 'expired_at']); }); return new Table(['ID', 'Name', 'Db_connection', 'expired_at'], $tenants->toArray()); }); $grid->column('created_at')->datetime(); $grid->column('updated_at')->datetime(); $grid->disableActions(); $grid->disableCreateButton(); $grid->filter(function (Grid\Filter $filter) { $filter->like('username'); $filter->equal('tenant_id')->select(Tenant::query()->pluck('name', 'id')); }); return $grid; } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { $show = new Show(GlobalUser::query()->findOrFail($id)); $show->field('id'); $show->field('username'); $show->field('created_at'); $show->field('updated_at'); $show->tenant('tenant', function ($tenant) { $tenant->id(); $tenant->name(); $tenant->tenancy_db_connection(); $tenant->expired_at(); $tenant->panel()->tools(function ($tools) { $tools->disableList(); $tools->disableEdit(); $tools->disableDelete(); }); }); return $show; } }