tangoman / repository-helper
Symfony 仓库助手
3.0.2
2018-04-08 21:03 UTC
Requires
- php: >=5.3.0
README
TangoMan 仓库助手 提供了一些对仓库有用的功能。
安装
步骤 1: 下载包
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require tangoman/repository-helper
此命令要求您全局安装了 Composer,具体请参阅 Composer 文档的安装章节。
用法
在您的仓库内
添加 "use" 声明,就像使用特质一样。
<?php namespace FoobarBundle\Repository; use Doctrine\ORM\EntityRepository; use TangoMan\RepositoryHelper\RepositoryHelper; /** * Class FoobarRepository */ class FoobarRepository extends EntityRepository { use RepositoryHelper; }
在您的控制器内
use Symfony\Component\HttpFoundation\Request; class FoobarController extends Controller { /** * @Route("/") */ public function indexAction(Request $request) { // Show searchable, sortable, paginated user list $em = $this->get('doctrine')->getManager(); $foobars = $em->getRepository('AppBundle:Foobar')->findByQuery($request); return $this->render( 'admin/foobar/index.html.twig', [ 'foobars' => $foobars, ] ); }
在您的视图内
搜索表单
<label for="inputUser">User</label> <input type="text" name="user-username" id="inputUser" class="form-control" value="{{ app.request.get('user-username')|join(', ') }}"/>
将生成以下内容:.../admin/posts/?user-username=admin
排序链接
<th class="{{ app.request.query.get('order') == 'user-username' ? app.request.query.get('way', 'ASC') }}"> <a href="{{ path('app_admin_post_index', app.request.query.all|merge({ 'page' : 1, 'order' : 'user-username', 'way' : app.request.query.get('order') == 'user-username' and app.request.query.get('way', 'ASC') == 'ASC' ? 'DESC' : 'ASC'})) }}"> User </a> </th>
将生成以下内容:.../admin/posts/?page=1&order=user-username&way=ASC
公共辅助方法
查询参数
开关
模式/操作员的开关值
错误
当 symfony 抛出以下 QueryException 异常时
[语义错误] 行 X,列 XX 附近 'foo LIKE':错误:无效的 PathExpression。必须是 StateFieldPathExpression。
这意味着您的表单中存在错误: <input name="foo-bar">,属性未针对适当的连接实体。
尝试 <input name="foo-bar-title"> 或 <input name="bar-title">,TangoMan 仓库助手 将自动处理连接。
注意
如果您发现任何错误,请在此处报告:问题
许可证
版权 (c) 2018 Matthias Morin
如果您喜欢 TangoMan 仓库助手,请给它加星!并关注我的 GitHub:TangoMan75 ... 并查看我的其他酷项目。