model()->where('type', BaseType::Base); // $grid->column('id')->sortable(); $grid->column('name'); $grid->column('person'); $grid->column('address'); $grid->column('address_lat'); $grid->column('address_lng'); // $grid->column('description'); // $grid->column('map'); $grid->column('areas'); $grid->column('workforce'); $grid->column('created_at')->sortable(); $grid->model()->orderBy('created_at', 'desc'); $grid->showCreateButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.agricultural_bases.create')); $grid->showQuickEditButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.agricultural_bases.edit')); $grid->showDeleteButton(! config('admin.permission.enable') || Admin::user()->can('dcat.admin.agricultural_bases.destroy')); $grid->filter(function (Grid\Filter $filter) { $filter->like('name')->width(3); }); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new AgriculturalBase(), function (Form $form) { $model = $form->model(); $form->display('id'); $form->text('name'); $form->text('person'); $form->number('areas'); $form->number('workforce'); $form->textarea('description'); $form->amap('position') ->key(config('amap.js.key')) ->code(config('amap.js.secret')) ->address(data_get($model, 'address')) ->lng(data_get($model, 'address_lng', 105.287612)) ->lat(data_get($model, 'address_lat', 29.339476)); $form->hidden('address'); $form->hidden('address_lng'); $form->hidden('address_lat'); $form->hidden('type')->value(BaseType::Base->value); $form->saving(function($form){ $position = json_decode($form->position); $form->address = $position->address ?? ''; $form->address_lng = $position->lng ?? ''; $form->address_lat = $position->lat ?? ''; $form->deleteInput('position'); }); $form->display('created_at'); $form->display('updated_at'); }); } public function destroy($id) { $agriculturalBasic = AgriculturalBase::findOrFail($id); $agriculturalBasic->crops()->sync([]); return parent::destroy($id); } }