brtriver / simple-crud-bundle
为Symfony2提供的简单CRUD trait控制器类
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-14 16:34:50 UTC
README
SimpleCrudBundle是一个Symfony2 Bundle。该Bundle通过特性提供了在控制器中进行CRUD的简单操作。您可以通过@Crud注解来指定模板和实体/存储库
<?php namespace Brtriver\SimpleCrudBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Response; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Brtriver\SimpleCrudBundle\Controller\SimpleCrudTraitController; use Brtriver\SimpleCrudBundle\Annotation\Crud; /** * @Route("/simple_crud", name="simple_crud_demo") * @Crud( * entity="Brtriver\SimpleCrudBundle\Entity\Demo", * repository="BrtriverSimpleCrudBundle:Demo", * template_list="BrtriverSimpleCrudBundle:Demo:list.html.twig", * template_new="BrtriverSimpleCrudBundle:Demo:new.html.twig", * template_edit="BrtriverSimpleCrudBundle:Demo:edit.html.twig", * template_show="BrtriverSimpleCrudBundle:Demo:show.html.twig", * form="Brtriver\SimpleCrudBundle\Form\DemoType" * ) */ class DemoController extends Controller { use SimpleCrudTraitController; /** * @Route("/") */ public function indexAction() { return new Response('hello world'); } } ...
特性中的这些操作只是模板,所以您需要在您自己的模板中编写逻辑并使用@Crud注解。如果想要覆盖CRUD操作,只需编写您的listAction、showAction、newAction或editAction方法。
您可以在Brtriver\SimpleCrudBundle\Controller\DemoController类中查看示例控制器代码。
需求
SimpleCrudBundle与PHP 5.4.0或更高版本兼容。
安装
通过Packagist安装https://packagist.org.cn/packages/brtriver/simple-crud-bundle
$ php composer.phar require brtriver/simple-crud-bundle:dev-master
将此Bundle添加到您的app/AppKernel.php
public function registerBundles() { $bundles = array( new Brtriver\SimpleCrudBundle\BrtriverSimpleCrudBundle(), ); }
演示
为了能够访问演示页面,您需要将其路由添加到应用程序的路由文件中
_simple_crud: resource: "@BrtriverSimpleCrudBundle/Resources/config/routing.yml" prefix: /_simple_crud
清除缓存后,您只需访问浏览器即可
http://127.0.0.1:8000/_simple_crud/demo/list
如果您想查看新/编辑页面,您需要配置数据库设置和demo表,因此请检查Entity/Demo.php中的实体
用法
使用SimpleCrudTraitController
在您想要添加CRUD方法的控制器中添加use语句。
use SimpleCrudTraitController;
@Crud 注解
SimpleCrudTrait的行为由@Crud注解定义。
entity:目标实体类名称(例如,entity="Brtriver\SimpleCrudBundle\Entity\Demo")repository:实体的目标存储库(例如,repository="BrtriverSimpleCrudBundle:Demo")form:实体的类型类(例如,form="Brtriver\SimpleCrudBundle\Form\DemoType")template_list:列表视图模板路径(例如,template_list="BrtriverSimpleCrudBundle:Demo:list.html.twig")template_new:新视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:new.html.twig")template_show:显示视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:show.html.twig")template_edit:编辑视图模板路径(例如,template_new="BrtriverSimpleCrudBundle:Demo:edit.html.twig")
然后,在您的Bundle中编写实体、存储库、FormType和每个模板。SimpleCrudBundle让您编写最少的代码。
重写操作方法
如果您想要更改每个操作方法的操作行为,您可以直接在控制器中重写每个方法。
/** * list page of json * * @Route("/list") */ public function listAction() { $entities = $this->getRepository()->findAll(); return new JsonResponse($entities); }
许可证
SimpleCrudBundle采用MIT许可证。