Symfony3 CRUD generator bundle with pagination, filtering, Twitter bootstrap 3.3.6 markup and many other features. It's Simple to use and fully customizable.
Designed to bring back the functionality of the old Symfony 1.4 admin generator, but extending from SensioGeneratorBundle with additional options and features.
- Pagination - using PagerFanta
- Filtering (With single multi search input or form)
- Doctrine association mapping support for Many-to-One, One-to-One and Many-to-Many (if the relation is the owning side) in forms and filters
- Sorting
- Items per page
- Bulk actions(delete) on multiple rows
- Delete from index
- Set your base template in the generated views.
- Possibility to set the save path for all the generated files (by default in app/Resources).
- Possiblity to not generate show code.
- Most of the features are optional and you can generate the CRUD very flexible depending on your needs.
This bundle is compatible with Symfony 2.8/3.0 or higher.
composer require petkopara/crud-generator-bundle
Register the CRUD and filter bundles in your AppKernel.php
:
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
new Petkopara\MultiSearchBundle\PetkoparaMultiSearchBundle(),
new Petkopara\CrudGeneratorBundle\PetkoparaCrudGeneratorBundle(),
Install the assets.
php bin/console assets:install --symlink
For the bootstrap theme of the forms, add this to your app/config/config.yml
twig:
form_themes:
- 'bootstrap_3_layout.html.twig'
Optionally if you are using your own base template, be sure that you include the javascript file of the bundle in it.
<script src="{{ asset('bundles/petkoparacrudgenerator/js/petkopara-crud-generator.js') }}"></script>
This bundle extends SensioGeneratorBundle. Pagination with PagerFanta . For the filtering is used PetkoparaMutiSearchBundle and LexikFormFilterBundle.
Use the following command from console:
php bin/console petkopara:generate:crud
And follow the wizard steps.
The default behavior of the bundle is to generate full featured crud, but you can customize what to be generated or not. The bundle adds few new parameters compared to the doctrine crud generator, to control all of the new features.
-
--filter-type
- Which filter type to use. There is three options:- input - To use Multi Search input.
- form - To use Lexik form filter.
- none - Will not generate any filter code.
-
--template
- The base template name, which the views will override. For example set it to--template=base.html.twig
to extends your base template.(by default PetkoparaCrudGeneratorBundle::base.html.twig). -
--without-write
- The default behavior of the bundle is to generate write code, so for that--with-write
option is transformed to this. -
--without-show
- Many times you don't need show code, for that this option is introduced. -
--without-sorting
- To not generate sorting code. -
--without-page-size
- To not generate items per page code. -
--without-bulk
- To not generate bulk actions code. -
--bundle-views
- Whether to store the view files in the bundles dir. By default the vies are stored in app/Resources/views/ .
Don't forget, that this is a just crud generator and you are free to change everything generated from this bundle.
Every generated file is based on a template. There are default templates but they can be overridden by placing custom templates in one of the following locations, by order of priority:
BUNDLE_PATH/Resources/PetkoparaCrudGeneratorBundle/skeleton/crud
APP_PATH/Resources/PetkoparaCrudGeneratorBundle/skeleton/crud
And
BUNDLE_PATH/Resources/PetkoparaCrudGeneratorBundle/skeleton/form
APP_PATH/Resources/PetkoparaCrudGeneratorBundle/skeleton/form
Petko Petkov - petkopara at gmail dot com
CrudGeneratorBundle is licensed under the MIT License.