PHP code example of neimheadh / sonata-annotation-bundle
1. Go to this page and download the library: Download neimheadh/sonata-annotation-bundle 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/ */
neimheadh / sonata-annotation-bundle example snippets
return [
//...
Neimheadh\SonataAnnotationBundle\SonataAnnotationBundle::class => ['all' => true],
];
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\FormField()
* @Sonata\ListField()
* @Sonata\ShowField()
* @Sonata\DatagridField()
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
#[ORM\Table]
#[ORM\Entity]
#[Sonata\Admin("Category")]
class Category
{
#[ORM\Column(name: "name", type: "string", length: 255)]
#[Sonata\FormField()]
#[Sonata\ListField()]
#[Sonata\ShowField()]
#[Sonata\DatagridField()]
private $name;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
use App\Admin\YourAdmin;
/**
* @Sonata\Admin(
* label="Category",
* managerType="orm",
* group="Category",
* showInDashboard=true,
* keepOpen=true,
* onTop=true,
* icon="<i class='fa fa-user'></i>",
* labelTranslatorStrategy="sonata.admin.label.strategy.native",
* labelCatalogue="App",
* pagerType="simple",
* controller=YourCRUDController::class,
* serviceId="app.admin.category",
* admin=YourAdmin::class,
* code="admin_code",
* defaultSort="id",
* defaultPage=1,
* defaultOrder="DESC",
* defaultPageSize=10,
* )
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @Sonata\Access("ROLE_CLIENT", permissions={"LIST", "VIEW", "EXPORT"})
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
* @Sonata\AddChild(class=Post::class, field="category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Post")
*
* @ORM\Table
* @ORM\Entity
*/
class Post
{
/**
* @ORM\ManyToOne(targetEntity="Category")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
private $category;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\FormField(
* action="create",
* type="",
* options={},
* fieldDescriptionOptions={},
* position=1
* )
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Sonata\FormField(
* type="",
* options={},
* fieldDescriptionOptions={},
* position=2
* )
*
* @ORM\Column(name="description", type="string", length=255)
*/
private $description;
/**
* @Sonata\FormField(
* action="create",
* type=TextType::class
* )
*
* @Sonata\FormField(
* action="edit",
* type=TextareaType::class
* )
*
* @ORM\Column(name="something", type="string", length=255)
*/
private $something;
}
// ...
/**
* @Sonata\Admin(
* name="Category",
* formFields={
* "name": @Sonata\FormField (
* action="create",
* type="",
* options={},
* fieldDescriptionOptions={},
* position=1
* ),
* "description": @Sonata\FormField (
* type="",
* options={},
* fieldDescriptionOptions={},
* position=2
* ),
* )
*/
class Category {
//...
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ShowField(
* type="",
* fieldDescriptionOptions={},
* position=1
* )
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Sonata\ShowField()
*/
public function showThis(): string
{
return 'show value';
}
}
// ...
/**
* @Sonata\Admin(
* name="Category",
* showFields={
* "name": @Sonata\ShowField(
* type="",
* fieldDescriptionOptions={},
* position=1
* )
* }
* )
*/
class Category
{
// ...
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ShowAssociationField(
* field="name",
* type="",
* fieldDescriptionOptions={},
* position=1
* )
*
* @Sonata\ShowAssociationField(
* field="email",
* type="",
* fieldDescriptionOptions={},
* position=1
* )
*
* @ORM\ManyToOne(targetEntity="Owner")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
private $owner;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ListField(identifier=true)
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Sonata\ListField(
* type="",
* fieldDescriptionOptions={},
* identifier=false,
* position=1
* )
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Sonata\ListField(position=1)
*/
public function listThis(): string
{
return 'list value';
}
}
// ...
/**
* @Sonata\Admin(
* listFields= {
* "id": @Sonata\ListField(identifier=true),
* "name": @Sonata\ListField(
* type="",
* fieldDescriptionOptions={},
* identifier=false,
* position=1
* )
* }
* )
*/
class Category {
// ...
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ListAssociationField(
* field="name",
* type="",
* fieldDescriptionOptions={},
* identifier=false,
* position=1
* )
*
* @Sonata\ListAssociationField(
* field="email",
* type="",
* fieldDescriptionOptions={},
* identifier=false
* )
*
* @ORM\ManyToOne(targetEntity="Owner")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
private $owner;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\DatagridField(
* type="",
* fieldDescriptionOptions={},
* filterOptions={},
* fieldType="",
* fieldOptions={},
* position=1
* )
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
}
// ...
/**
* @Sonata\Admin(
* datagridFields= {
* "name": @Sonata\DatagridField (
* type="",
* fieldDescriptionOptions={},
* filterOptions={},
* fieldType="",
* fieldOptions={},
* position=1
* )
* }
* )
*/
class Category {
// ...
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\DatagridAssociationField(
* field="name",
* type="",
* fieldDescriptionOptions={},
* filterOptions={},
* fieldType="",
* fieldOptions={},
* position=1
* )
*
* @Sonata\DatagridAssociationField(
* field="email",
* type="",
* fieldDescriptionOptions={},
* filterOptions={},
* fieldType="",
* fieldOptions={}
* )
*
* @ORM\ManyToOne(targetEntity="Owner")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
private $owner;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ExportField()
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Sonata\ExportField("Custom Name")
*
* @ORM\Column(name="tag", type="string", length=255)
*/
private $tag;
/**
* @Sonata\ExportField()
*/
public function exportThis(): string
{
return 'export value';
}
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ExportAssociationField(
* field="name",
* label="Owner"
* )
*
* @Sonata\ExportAssociationField(
* field="email",
* label="Email"
* )
*
* @ORM\ManyToOne(targetEntity="Owner")
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
*/
private $owner;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
/**
* @Sonata\Admin("Category")
*
* @Sonata\ExportFormats({"json", "xml"})
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @Sonata\ExportField()
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin(
* label="Category",
* controller=YourCRUDController::class
* )
*
* @Sonata\AddRoute("import")
* @Sonata\AddRoute(name="send_mail", path="{id}/send_mail")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin(
* label="Category",
* controller=YourCRUDController::class
* )
*
* @Sonata\RemoveRoute("edit")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin(
* label="Category",
* controller=YourCRUDController::class
* )
*
* @Sonata\AddRoute(name="import", path="/import")
*
* @Sonata\ActionButton("import_action_button.html.twig")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin(
* label="Category",
* controller=YourCRUDController::class
* )
*
* @Sonata\AddRoute(name="import", path="/import")
*
* @Sonata\DashboardAction("import_dashboard_button.html.twig")
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin(
* label="Category",
* controller=YourCRUDController::class
* )
*
* @Sonata\AddRoute(name="import", path="/import")
*
* @Sonata\ListAction("show")
* @Sonata\ListAction("edit")
* @Sonata\ListAction("delete")
* @Sonata\ListAction(name="import", options={"template"="import_list_button.html.twig"})
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Controller\YourCRUDController;
/**
* @Sonata\Admin("Category")
*
* @Sonata\DatagridValues({"_sort_by":"p.name"})
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
/**
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
}
namespace App\Admin;
use Neimheadh\SonataAnnotationBundle\Admin\AnnotationAdmin;
class YourAdmin extends AnnotationAdmin
{
//do what you want
}
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Neimheadh\SonataAnnotationBundle\Annotation\Sonata;
use App\Admin\YourAdmin;
/**
* @Sonata\Admin(
* label="Category",
* admin=YourAdmin::class
* )
*
* @ORM\Table
* @ORM\Entity
*/
class Category
{
}