Configure your resource
Read the previous chapter to create a new resource. In order for your resource to truly become a Sylius Resource, you will need to configure a couple of things.
Implement the Resource interface
First, to declare your resource as a Sylius Resource, implement the Sylius\Component\Resource\Model\ResourceInterface, which requires defining a getId() method to uniquely identify the resource.
namespace App\Entity;
class Book implements ResourceInterface
{
public function getId(): int
{
return $this->id;
}
}Use the Resource attribute
Next, add the #[AsResource] PHP attribute to your Doctrine entity to register it as a Sylius resource.
Run the following command to verify that your resource is correctly configured.
By default, the alias for your Sylius resource will be app.book, which combines the application name and the resource name with this format : {application}.{resource}.
Advanced configuration
Configure the resource name
You can override your resource's name via the name parameter of the AsResource PHP attribute.
In this example, the order variable is replaced with cart in your Twig templates. As a result, for the show operation, the following Twig variables will be available within the template:
resource
App\Entity\Order
cart
App\Entity\Order
operation
Sylius\Resource\Metadata\Show
resource_metadata
Sylius\Resource\Metadata\ResourceMetadata
app
Symfony\Bridge\Twig\AppVariable
Configure the resource plural name
You can override your resource's plural name via the pluralName parameter of the AsResource PHP attribute.
In this example, the books variable is replaced with library in your Twig templates. As a result, for the index operation, the following Twig variables will be available within the template:
resources
Pagerfanta\Pagerfanta
library
Pagerfanta\Pagerfanta
operation
Sylius\Resource\Metadata\Index
resource_metadata
Sylius\Resource\Metadata\ResourceMetadata
app
Symfony\Bridge\Twig\AppVariable
Configure additional resource vars
You can define simple variables within the AsResource attribute via the vars parameter.
You can then access these variables in your Twig templates. These variables will be available for every operation associated with this resource.
Last updated