Symfony & Sonata-admin
Descargar laradock.
Copiar el archivo de con las variabes de entorno.
Nginx tiene archivo especial para Synfony.
Entrar al workspace.
Entrar al workspace.
sudo docker-compose up -d nginx mysql
sudo docker-compose exec workspace bash
composer create-project symfony/website-skeleton .
composer require sonata-project/admin-bundle (including "sonata-project/core-bundle (>=3.9)" AND "sonata-project/admin-bundle (>=3.31)") whit are from contributors.
composer require sonata-project/doctrine-orm-admin-bundle
chmod -R 777 .
# config/packages/framework.yaml
framework:
translator: { fallbacks: ['%locale%'] }
bin/console cache:clear
bin/console assets:install
http://yoursite.local/admin/dashboard
bin/console make:entity
BlogPost
title
string
255
no
body
text
no
draft
boolean
no
bin/console make:entity
Category
name
string
255
no
blogPosts
OneToMany
App\Entity\BlogPost
no
no
\Add "DATABASE_URL=mysql://default:secret@mysql:3306/default" to .env file
bin/console doctrine:schema:update --force
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
{
$datagridMapper
// ->add('id')
->add('name')
;
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
// ->add('id')
->add('name')
->add('_action', null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
// ->add('id')
->add('name')
;
}
protected function configureShowFields(ShowMapper $showMapper): void
{
$showMapper
// ->add('id')
->add('name')
;
}
Update BlogPostAdmin.php
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Sonata\AdminBundle\Form\Type\ModelType;
use App\Entity\Category;
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
{
$datagridMapper
// ->add('id')
->add('title')
->add('body')
->add('draft')
;
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
// ->add('id')
->addIdentifier('title')
->add('body')
->add('draft')
->add('_action', null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
// ->add('id')
->add('title')
->add('body')
->add('draft', CheckboxType::class, ['required'=> false])
->add('category', ModelType::class, [
'class' => Category::class,
'property' => 'name',
])
;
}
protected function configureShowFields(ShowMapper $showMapper): void
{
$showMapper
// ->add('id')
->add('title')
->add('body')
->add('draft')
;
}