i want to use permissions. read this doc:
https://laravel-admin.org/docs/#/en/permission
i got this erorr when using create() functions with Permission:
Declaration of App\Admin\Controllers\ServiceController::create() should be compatible with Encore\Admin\Controllers\AdminController::create(Encore\Admin\Layout\Content $content)
<?php
namespace App\Admin\Controllers;
use App\Models\Service;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Auth\Permission;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class ServiceController extends AdminController
{
/**
* Title for current resource.
*
* @var string
*/
protected $title = 'خدمات';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new Service);
$grid->disableExport();
$grid->paginate(20);
// $grid->column('id', __('Id'));
$grid->column('title', __('خدمت'))->editable();
$grid->column('description', __('توضیح خدمت'))->editable();
$grid->column('price', __('قیمت به تومان'))->editable();
// $grid->column('created_at', __('Created at'));
// $grid->column('updated_at', __('Updated at'));
// $grid->column('deleted_at', __('Deleted at'));
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(Service::findOrFail($id));
$show->field('id', __('Id'));
$show->field('title', __('Title'));
$show->field('description', __('Description'));
$show->field('price', __('Price'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
$show->field('deleted_at', __('Deleted at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new Service);
$form->text('title', __('نام خدمت'))->placeholder('نام کوتاه و واضح')->required();
$form->textarea('description', __('توضیح خدمت'))->placeholder('این خدمت چه کمکی به مشتری میکند؟')->required();
$form->number('price', __('دستمزد خدمت'))->placeholder('به تومان')->required();
return $form;
}
public function create()
{
Permission::check('agency');
}
}
@amirbagh75 Hello!
We inherit from the standard class Controller (non-AdminController) in the example, so in your case you need to do this:
...
public function create(Encore\Admin\Layout\Content $content)
{
Permission::check('agency');
return parent::create($content);
}
...
or better like this:
...
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new Service);
if ($form->isCreating()) { // Since v1.7.6
Permission::check('agency');
}
$form->text('title', __('نام خدمت'))->placeholder('نام کوتاه و واضح')->required();
$form->textarea('description', __('توضیح خدمت'))->placeholder('این خدمت چه کمکی به مشتری میکند؟')->required();
$form->number('price', __('دستمزد خدمت'))->placeholder('به تومان')->required();
return $form;
}
...
@amirbagh75 Hello!
We inherit from the standard class Controller (non-AdminController) in the example, so in your case you need to do this:... public function create(Encore\Admin\Layout\Content $content) { Permission::check('agency'); return parent::create($content); } ...or better like this:
... /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Service); if ($form->isCreating()) { // Since v1.7.6 Permission::check('agency'); } $form->text('title', __('نام خدمت'))->placeholder('نام کوتاه و واضح')->required(); $form->textarea('description', __('توضیح خدمت'))->placeholder('این خدمت چه کمکی به مشتری میکند؟')->required(); $form->number('price', __('دستمزد خدمت'))->placeholder('به تومان')->required(); return $form; } ...if ($form->isCreating()) { // Since v1.7.6
$form->text('title', __('نام خدمت'))->placeholder('نام کوتاه و واضح')->required();
$form->textarea('description', __('توضیح خدمت'))->placeholder('این خدمت چه کمکی به مشتری میکند؟')->required();
$form->number('price', __('دستمزد خدمت'))->placeholder('به تومان')->required();
}
why this code not working ? and didnt save anything ?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Most helpful comment
@amirbagh75 Hello!
We inherit from the standard class Controller (non-AdminController) in the example, so in your case you need to do this:
or better like this: