update docs

This commit is contained in:
Simon Vieille 2022-05-10 19:47:39 +02:00
parent 52f398f2a3
commit 425cd88f9d
Signed by: deblan
GPG key ID: 579388D585F70417

View file

@ -32,9 +32,15 @@ Defines options given to a form.
## setAction
`setAction(string $page, string $action, bool $enabled)`
`setAction(string $page, string $action, bool|callable $enabled)`
Set if an action is enabled or not in the given page. Take a look at `core/Resources/views/admin/crud/*.html.twig` for more information.
Set if an action is enabled or not in the given page. Take a look at `core/Resources/views/admin/crud/*.html.twig` for more information. Depending the context, the callable could receive the entity in parameter. Example:
```
->setAction('index', 'edit', function(EntityInterface $entity) {
return $entity->getUser()->getId() === $this->getUser()->getId();
})
```
Usage in a CRUD template: `{% if configuration.action('index', 'new')%}...{% endif %}`.
@ -86,7 +92,7 @@ Add a field displayed in the given context. Used in the index.
use App\Core\Crud\Field;
$configuration->setField('index', 'Title', Field\TextField::class, [
// options
// options
])
```
@ -106,28 +112,28 @@ Examples:
```
$configuration->setField('index', 'My field', TextField::class, [
'property' => 'myProperty',
// OR
'property_builder' => function($entity, array $options) {
return $entity->getMyProperty();
},
'property' => 'myProperty',
// OR
'property_builder' => function($entity, array $options) {
return $entity->getMyProperty();
},
])
$configuration->setField('index', 'My field', TextField::class, [
'raw' => true,
'property_builder' => function($entity, array $options) {
return sprintf('<span class="foo">%s</span>', $entity->getBar());
},
'raw' => true,
'property_builder' => function($entity, array $options) {
return sprintf('<span class="foo">%s</span>', $entity->getBar());
},
])
// https://127.0.0.7:8000/admin/my_entity?_sort=property&_sort_direction=asc
$configuration->setField('index', 'My field', TextField::class, [
'property' => 'myProperty'
'sort' => ['property', '.myProperty'],
// OR
'sort' => ['property', function(MyEntityRepositoryQuery $query, $direction) {
$query->orderBy('.myProperty', $direction);
}],
'property' => 'myProperty'
'sort' => ['property', '.myProperty'],
// OR
'sort' => ['property', function(MyEntityRepositoryQuery $query, $direction) {
$query->orderBy('.myProperty', $direction);
}],
])
```
@ -198,11 +204,11 @@ Set the default sort applied in the repository query.
```
$configuration
->setDefaultSort('index', 'title', 'asc')
->setField('index', 'Title', Field\TextField::class, [
'property' => 'title',
'sort' => ['title', '.title'],
]);
->setDefaultSort('index', 'title', 'asc')
->setField('index', 'Title', Field\TextField::class, [
'property' => 'title',
'sort' => ['title', '.title'],
]);
```
## setIsSortableCollection
@ -214,7 +220,7 @@ It enables the drag & drop to sort entities.
```
class MyEntity implements EntityInterface
{
// ...
// ...
/**
* @ORM\Column(type="integer", nullable=true)
@ -233,7 +239,7 @@ class MyEntity implements EntityInterface
return $this;
}
// ...
// ...
}
```