PHP code example of anik / laravel-backpack-extension
1. Go to this page and download the library: Download anik/laravel-backpack-extension library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
anik / laravel-backpack-extension example snippets
use Anik\LaravelBackpack\Extension\Columns\Column;
use Anik\LaravelBackpack\Extension\Controllers\CrudController;
class AccountCrudController extends CrudController
{
public function setupListOperation () {
$columns = [
Column::ID()->orderable(), // Only this column will be orderable
Column::create('email')->searchable(), // Makes this field searchable
Column::create('name')->searchable(
fn ($q, $column, $term) => strlen($term = trim($term)) >= 3 ? $q->where('name', 'LIKE', sprintf('%%%s%%', $term)) : null)
), // Also makes this field searchable with custom logic
];
$this->registerColumns($columns);
$this->registerColumn((new Column('is_verified', 'Verified'))->setType('boolean'));
}
}
use Anik\LaravelBackpack\Extension\Controllers\CrudController;
use Anik\LaravelBackpack\Extension\Fields\Field;
class AccountCrudController extends CrudController
{
public function setupCreateOperation () {
$fields = [
Field::create('email')->setType('email'),
Field::create('is_admin')->checkbox(),
];
$this->registerFields($fields);
$this->registerField((new Field('csrf_token'))->hidden());
}
}
use Anik\LaravelBackpack\Extension\Controllers\CrudController;
use Anik\LaravelBackpack\Extension\Filters\Filter;
use Anik\LaravelBackpack\Extension\Filters\AjaxFilter;
class AccountCrudController extends CrudController
{
public function setupListOperation () {
$filters = [
Filter::create('status')
->setValues([1 => 'Draft', 2 => 'Pending', 3 => 'Published',])
->setLogic(fn($status) => $this->crud->query->where('status', $status)),
AjaxFilter::create('user_id'),
];
$this->registerFilters($filters);
$this->registerFilter((new Filter('is_deleted'))->setValues([0, 1]));
}
}
use Anik\LaravelBackpack\Extension\Controllers\CrudController;
use Anik\LaravelBackpack\Extension\Widgets\Script;
use Anik\LaravelBackpack\Extension\Widgets\Style;
use Anik\LaravelBackpack\Extension\Widgets\Widget;
class AccountCrudController extends CrudController
{
public function setupListOperation () {
$widgets = [
Script::create('assets/js/common.js'),
Style::create('assets/css/common.css'),
];
$this->registerWidgets($widgets);
$this->registerWidget((new Widget('script'))->setContent('assets/js/another_common.js'));
}
}
use Anik\LaravelBackpack\Extension\Columns\Column;
use Anik\LaravelBackpack\Extension\Controllers\CrudController;
use Anik\LaravelBackpack\Extension\Fields\Field;
use Anik\LaravelBackpack\Extension\Relations\BelongsTo;
use Anik\LaravelBackpack\Extension\Relations\HasMany;
class AccountCrudController extends CrudController
{
public function setupListOperation () {
$columns = [
// Other columns
Column::create('phone')->related(HasMany::create('phones', 'number')),
];
$this->registerColumns($columns);
}
public function setupCreateOperation() {
$fields = [
// Other fields
Field::create('country_id', 'Country')->related(BelongsTo::create('country', 'name')),
];
$this->registerFields($fields);
}
}