symfony2 中 非yml的动态路由

控制器
namespace SystemBundle\Controller;

use AppBundle\Controller\AjaxController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

use AppBundle\Entity\User;

class WorkerController extends AjaxController
{
    /**
     * @Route("/{slug}/list", requirements={"slug": "allocator|deliverer|distributor|server"})
     */
    public function getlistAction(Request $request, $slug)
    {
        $session = $request->getSession();
        $targetUser = $session->get('targetUser');
        $workService = $this->get('system.worker');
        $data = $workService->getList($targetUser, $slug);

        $ret = array(
            'status' => self::STATUS_OK,
            'data' => $data,
        );

        return new JsonResponse($ret);
    }

}

servrce(服务)

public function getList($targetUser, $index)
{
    if ($index) {
        $queryIndex = User::ROLE_EMPLOYEE;
    }
    $warehouseId = $targetUser->getWarehouseId();
    if (empty($warehouseId)) {
        return array();
    }
    $sql = 'SELECT u 
            FROM AppBundle:User u,
            AppBundle:UserRole ur,
            AppBundle:UserWarehouse ws
            WHERE u.id = ur.userId
            AND ur.role = :role
            AND ws.warehouseId = :warehouseId
            AND ws.userId = u.id';
    $params['role'] = $queryIndex;
    $params['warehouseId'] = $warehouseId;
    $workerList = $this->entityManager->createQuery($sql)->setParameters($params)->getResult();
    $data = array();
    $data = $this->_buildWorkerDTO($workerList);

    return $data;
}
里面包含一些链表查询

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值