The mwsimple:generate:admincrud generates a very basic controller for a given entity located in a given bundle. This controller extend the default controller implements [paginator], [filter] and allows to perform the [five basic operations] on a model, allows rewriting actions and views.
Listing all records,
Showing one given record identified by its primary key,
Creating a new record,
Editing an existing record,
Deleting an existing record.
- Use only annotation in controller.
Add following lines to your composer.json
file:
"require": {
...
"mwsimple/admin-crud": "2.3.*@dev",
}
Execute:
php composer.phar update "mwsimple/admin-crud"
Add it to the AppKernel.php
class:
// ...
new MWSimple\Bundle\AdminCrudBundle\MWSimpleAdminCrudBundle(),
new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
new Knp\Bundle\MenuBundle\KnpMenuBundle(),
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
You can configure config.yml
imports:
...
- { resource: "@MWSimpleAdminCrudBundle/Resources/config/services.yml" }
framework:
...
translator: { fallback: %locale% } # uncomment line
You can configure config.yml
find Twig Configuration
twig:
...
form:
resources:
- LexikFormFilterBundle:Form:form_div_layout.html.twig
You can configure config.yml
default query parameter names and templates
knp_paginator:
page_range: 10 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
# pagination: KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig # bootstrap 3 sliding pagination controls template
pagination: MWSimpleAdminCrudBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig # bootstrap 3 sliding pagination controls template
sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template
You can configure config.yml
default query parameter names and templates
mw_simple_admin_crud:
menu:
child: { name: inicio, url: mws_admin_crud_menu }
#child2: { name: seccion, url: admin_seccion }
Optional icons, configure knp_menu config.yml
add icon
knp_menu:
twig: # use "twig: false" to disable the Twig extension and the TwigRenderer
template: MWSimpleAdminCrudBundle:Menu:knp_menu.html.twig
templating: false # if true, enables the helper for PHP templates
default_renderer: twig # The renderer to use, list is also available by default
mw_simple_admin_crud:
menu:
child: { name: inicio, url: mws_admin_crud_menu, icon: glyphicon glyphicon-home }
You can configure routing.yml
default query parameter names and templates
mw_simple_admin_crud:
resource: "@MWSimpleAdminCrudBundle/Controller/"
type: annotation
prefix: /admin
app/console assets:install
This bundle extends SensioGeneratorBundle and add a paginator using KnpPaginatorBundle and filter using LexikFormFilterBundle and menu using KnpMenuBundle .
php app/console generate:doctrine:entity
php app/console mwsimple:generate:admincrud
...
use MWSimple\Bundle\AdminCrudBundle\Entity\BaseFile;
...
class Demo extends BaseFile {
...
public function getUploadDir()
{
$this->uploadDir = 'uploads/files';
return $this->uploadDir;
}
}
->add('file', 'mws_field_file', array(
'required' => false,
'file_path' => 'webPath',
'label' => 'Image'
))
public function __toString()
{
return (string)$this->getId();
}
public function getAutocompleteEntity()
{
$options = array(
...
'field' => "id", #change by field id to use for the search
);
...
}
##ACL
Documentation implement user recommend FOSUserBundle
You can configure config.yml
default query parameter names and templates
services:
#ACL manager
mws_acl_manager:
class: MWSimple\Bundle\AdminCrudBundle\Services\ACLManager
arguments:
- "@service_container"
#Listener delete ACL PostRemove
mws_acl_listener:
class: MWSimple\Bundle\AdminCrudBundle\EventListener\ACLListener
arguments:
- "@service_container"
tags:
- { name: doctrine.event_listener, event: preRemove }
mw_simple_admin_crud:
#...
acl:
use: true #default false
exclude_role: ROLE_SUPER_ADMIN #exclude role the control, default false
#entities use
entities:
- Acme\DemoBundle\Entity\Post
- Acme\DemoBundle\Entity\Post2
##Is included in the forms: jQuery plugin to validate form fields with Bootstrap 3+
##If Embed a Collection of Forms
###Using methods: addForm() and removeForm(), included in:
<script src="{{ asset('bundles/mwsimpleadmincrud/js/addForm.js') }}"></script>
*if not using the validation does not work
Gonzalo Alonso - gonkpo@gmail.com