$display = AdminDisplay::tabbed(); $display->tabs(function () { $tabs = []; $columns = [Column::string('title')->label('Title'), Column::datetime('date')->label('Date')->format('d.m.Y'), Column::custom()->label('Published')->callback(function ($instance) { return $instance->published ? '✓' : '-'; })]; $main = AdminDisplay::table(); $main->columns($columns); $tabs[] = AdminDisplay::tab($main)->label('Main')->active(true); $withScope = AdminDisplay::table(); $withScope->scope('last'); $withScope->columns($columns); $tabs[] = AdminDisplay::tab($withScope)->label('With Scope'); $otherColumns = AdminDisplay::table(); $otherColumns->apply(function ($query) { $query->orderBy('title', 'asc'); }); $otherColumns->columns([Column::string('title')->label('Title'), Column::custom()->label('Title Length')->callback(function ($instance) { return strlen($instance->title); })]); $tabs[] = AdminDisplay::tab($otherColumns)->label('Other Columns and Order'); $otherDisplay = Admin::model('App\\Page')->display(); $tabs[] = AdminDisplay::tab($otherDisplay)->label('Display from Other Model'); return $tabs; }); return $display; })->createAndEdit(function () { $form = AdminForm::form(); $form->items([FormItem::text('title', 'Title')->required(), FormItem::date('date', 'Date')->required()->format('d.m.Y'), FormItem::checkbox('published', 'Published'), FormItem::ckeditor('text', 'Text')]); return $form; });
<?php Admin::model('App\\Contact3')->title('Contact')->alias('contacts3')->display(function () { $display = AdminDisplay::table(); $display->with('country', 'companies'); $display->filters([Filter::related('country_id')->model('App\\Country')]); $display->columns([Column::image('photo')->label('Photo'), Column::string('fullName')->label('Name'), Column::datetime('birthday')->label('Birthday')->format('d.m.Y'), Column::string('country.title')->label('Country')->append(Column::filter('country_id')), Column::lists('companies.title')->label('Companies')]); return $display; })->createAndEdit(function ($id) { $display = AdminDisplay::tabbed(); $display->tabs(function () use($id) { $tabs = []; $form = AdminForm::form(); $form->items([FormItem::columns()->columns([[FormItem::text('firstName', 'First Name')->required(), FormItem::text('lastName', 'Last Name')->required(), FormItem::text('phone', 'Phone'), FormItem::text('address', 'Address')], [FormItem::image('photo', 'Photo'), FormItem::date('birthday', 'Birthday')->format('d.m.Y')], [FormItem::select('country_id', 'Country')->model('App\\Country')->display('title'), FormItem::textarea('comment', 'Comment')]])]); $tabs[] = AdminDisplay::tab($form)->label('Main Form')->active(true); if (!is_null($id)) { $instance = App\Contact::find($id); if ($instance->country_id) { $country = Admin::model('App\\Country')->fullEdit($instance->country_id); $tabs[] = AdminDisplay::tab($country)->label('Form from Related Model (Country)'); } $companies = Admin::model('App\\Company')->display(); $companies->scope('withContact', $id); $companies->parameters(['contact_id' => $id]); $tabs[] = AdminDisplay::tab($companies)->label('Display from Related Model (Companies)'); } return $tabs; }); return $display; })->delete(null);
$secondaryDisplay = AdminDisplay::datatables(); $secondaryDisplay->apply(function ($query) { $query->onlyTrashed(); }); $secondaryDisplay->columns([Column::checkbox(), Column::string('id'), Column::custom()->label('Картинка')->callback(function ($instance) { $attachment = $instance->attachments()->first(); if (!is_null($attachment)) { if ($attachment->type === 'album') { $attachment = $attachment->childs()->first(); } return "<img class='thumbnail' width='80px' src='{$attachment->srcs['image_small']}'>"; } return ''; }), Column::custom()->label('Текст')->callback(function ($instance) { return str_limit($instance->text, 180); }), Column::datetime('date')->label('Создан')->format('d.m.Y в H:i'), Column::datetime('created_at')->label('Импортирован')->format('d.m.Y в H:i'), Column::datetime('deleted_at')->label('Удален')->format('d.m.Y в H:i')]); $secondaryDisplay->actions([Column::action('post_restore')->value('Восстановить записи')->icon('fa-refresh')->callback(function (\Illuminate\Database\Eloquent\Collection $collections) { if ($collections) { /** @var \App\Post $collection */ foreach ($collections as $collection) { $collection->restore(); } } })]); $tabs = []; $tabs[] = AdminDisplay::tab($mainDisplay)->label('Активные записи')->active(true); $tabs[] = AdminDisplay::tab($secondaryDisplay)->label('Удаленные записи'); return $tabs; }); return $display; });
<?php Admin::model('App\\Post')->title('Posts (soft deletes)')->display(function () { $display = AdminDisplay::tabbed(); $display->tabs(function () { $tabs = []; $default = AdminDisplay::table(); $default->columns([Column::string('title')->label('Title')]); $tabs[] = AdminDisplay::tab($default)->label('Default')->active(true); $withTrashed = AdminDisplay::table(); $withTrashed->scope('withTrashed'); $withTrashed->columns([Column::string('title')->label('Title')]); $tabs[] = AdminDisplay::tab($withTrashed)->label('With Trashed'); $onlyTrashed = AdminDisplay::table(); $onlyTrashed->scope('onlyTrashed'); $onlyTrashed->columns([Column::string('title')->label('Title')]); $tabs[] = AdminDisplay::tab($onlyTrashed)->label('Only Trashed'); return $tabs; }); return $display; })->createAndEdit(function () { $form = AdminForm::form(); $form->items([FormItem::text('title', 'Title')->required()->unique(), FormItem::ckeditor('text', 'Text')]); return $form; });