You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
views/app/Http/Controllers/Admin/CategoryCrudController.php

159 lines
5.8 KiB

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\CategoryRequest;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
/**
* Class CategoryCrudController
* @package App\Http\Controllers\Admin
* @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
*/
class CategoryCrudController extends CrudController
{
use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation {
store as traitStore;
}
use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation;
/**
* Configure the CrudPanel object. Apply settings to all operations.
*
* @return void
*/
public function setup()
{
CRUD::setModel(\App\Models\Category::class);
CRUD::setRoute(config('backpack.base.route_prefix') . '/category');
CRUD::setEntityNameStrings(
__('entities.category.singular'),
__('entities.category.plural'),
);
$this->crud->addClause(function (Builder $builder) {
$builder->where('user_id', backpack_user()->id);
});
}
/**
* Define what happens when the List operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-list-entries
* @return void
*/
protected function setupListOperation()
{
$this->crud->addColumn([
'name' => 'icon',
'label' => 'آیکون',
'type' => 'custom_html',
'value' => function($category){
$icon = $category->icon != ''
? asset("icons/{$category->icon}")
: asset('icons/icon-default.png');
return "<img src='{$icon}' class='mx-auto mb-2' style='width: 40px;'>";
}
]);
CRUD::setFromDb(); // set columns from db columns.
$this->crud->removeColumn('user_id');
$this->crud->removeColumn('user_id');
/**
* Columns can be defined using the fluent syntax:
* - CRUD::column('price')->type('number');
*/
}
/**
* Define what happens when the Create operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-create
* @return void
*/
protected function setupCreateOperation()
{
CRUD::setFromDb(); // set fields from db columns.
$this->crud->removeField('user_id');
CRUD::field([ // select_from_array
'name' => 'icon',
'label' => "آیکون",
'type' => 'select_from_array',
'options' => [
"icon-appetizer.png" => 'پیش غذا',
"icon-beverage.png" => 'نوشیدنی',
"icon-bread.png" => 'نان',
"icon-breakfast.png" => 'صبحانه',
"icon-burger.png" => 'برگر',
"icon-calendar.png" => 'تقویم',
"icon-candy.png" => 'شیرینی، کیک و بستنی',
"icon-cereal.png" => 'غلات',
"icon-chicken.png" => 'جوجه',
"icon-chickenstrips.png" => 'چیکن استریپس',
"icon-cup.png" => 'فنجان',
"icon-default.png" => 'پیش فرض',
"icon-dessert.png" => 'دسر',
"icon-dizi.png" => 'دیزی',
"icon-doner.png" => 'دونر',
"icon-doughnut.png" => 'دونات',
"icon-food.png" => 'غذا',
"icon-fruites.png" => 'میوه ها',
"icon-hotdog.png" => 'هات داگ',
"icon-international.png" => 'غذای بینالمللی',
"icon-juice.png" => 'آب میوه',
"icon-kalle.png" => 'کله',
"icon-kebab.png" => 'کباب',
"icon-kebabrice.png" => 'چلوکباب',
"icon-lettuce.png" => 'کاهو',
"icon-marmalade.png" => 'مارمالاد',
"icon-pasta.png" => 'پاستا',
"icon-pistachio.png" => 'پسته',
"icon-pizza.png" => 'پیتزا',
"icon-pot.png" => 'قابلمه',
"icon-rice.png" => 'برنج',
"icon-salad.png" => 'سالاد',
"icon-sandwich.png" => 'ساندویچ',
"icon-seafood.png" => 'غذای دریایی',
"icon-soup.png" => 'سوپ',
"icon-spice.png" => 'ادویه',
"icon-steak.png" => 'استیک',
"icon-sushi.png" => 'سوشی',
"icon-vegetables.png" => 'سبزیجات',
"icon-wrap.png" => 'ساندویچ و لقمه',
],
'allows_null' => false,
'default' => 'one',
// 'allows_multiple' => true, // OPTIONAL; needs you to cast this to array in your model;
]);
/**
* Fields can be defined using the fluent syntax:
* - CRUD::field('price')->type('number');
*/
}
/**
* Define what happens when the Update operation is loaded.
*
* @see https://backpackforlaravel.com/docs/crud-operation-update
* @return void
*/
protected function setupUpdateOperation()
{
$this->setupCreateOperation();
$this->crud->removeColumn('user_id');
}
public function store(Request $request)
{
$request->merge(['user_id' => backpack_user()->id]);
$this->crud->addField('user_id');
// dd('ads');
return $this->traitStore();
}
}