小编Thi*_*sta的帖子

将MySQL转换为Doctrine查询生成器.IF和CONCAT的问题.或者选择子查询的另一种方法

我有一个表格用于我的类别,每个类别都有和id,name和parent_id.

Select IF(a.parent_id IS NULL, a.name, CONCAT((SELECT b.name FROM category b WHERE b.id = a.parent_id), " / ", a.name) ) as n, a.id, a.parent_id
FROM category a
ORDER BY n
Run Code Online (Sandbox Code Playgroud)

我想将它转换为我的Doctrine2查询生成器

    $em = $this->getDoctrine()->getEntityManager();
    $qb = $em->createQueryBuilder();
    $q = $qb
            ->select("c.id")
            ->addSelect(
                "IF(c.parent_id IS NULL, c.name, CONCAT((" .
                $em->createQueryBuilder()
                   ->select("t.name")
                   ->from("MyBundle:Category", "t")
                   ->getQuery()->getDQL() .
                "), \" / \", c.name) )"
            )
            ->from("MyBundle:Category", "c");
    echo $q->getQuery()->getSQL();
    exit;
Run Code Online (Sandbox Code Playgroud)

类似的东西,但我不能使用IF,和CONCAT.

mysql doctrine symfony doctrine-orm

24
推荐指数
1
解决办法
3万
查看次数

指南针精灵生成太多的CSS类

我正在使用罗盘来生成精灵图像.我有很多精灵图标,它产生了太多的CSS代码(背景图像的类选择器太多).所以让我们分析罗盘精灵代码:

你可以在这里看到http://compass-style.org/help/tutorials/spriting/

@import "my-icons/*.png";
@include all-my-icons-sprites;
Run Code Online (Sandbox Code Playgroud)

会产生:

.my-icons-sprite,
.my-icons-delete,
.my-icons-edit,
.my-icons-new,
.my-icons-save   { background: url('/images/my-icons-s34fe0604ab.png') no-repeat; }

.my-icons-delete { background-position: 0 0; }
.my-icons-edit   { background-position: 0 -32px; }
.my-icons-new    { background-position: 0 -64px; }
.my-icons-save   { background-position: 0 -96px; }
Run Code Online (Sandbox Code Playgroud)

如果你看到我用这种方式: <div class="my-icons-sprite my-icons-delete"></div>

我希望Compass生成这段代码:

.my-icons-sprite { background: url('/images/my-icons-s34fe0604ab.png') no-repeat; }

.my-icons-delete { background-position: 0 0; }
.my-icons-edit   { background-position: 0 -32px; }
.my-icons-new    { background-position: 0 -64px; }
.my-icons-save   { background-position: 0 -96px; }
Run Code Online (Sandbox Code Playgroud)

除了每个新图像,它还会添加背景和背景位置.引起太多选择者.

有配置吗?

谢谢

css sass sprite compass-sass

7
推荐指数
1
解决办法
2030
查看次数

如何在我的Type类中访问我的服务(DependencyInjection)?

我有一个我创建的服务(DependencyInjection),我在我的控制器上使用它:

$this->get("service_name")->someMethod()
Run Code Online (Sandbox Code Playgroud)

我想知道如何在我的Form类上使用它.

这是我的示例形式的类:

namespace Company\SampleBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class AnswerType extends AbstractType {

    public function buildForm(FormBuilder $builder, array $options) {
        // I want use: $this->get("service") here, how can i use that?
        $builder->add('answer', 'textarea');
    }

    public function getName() {
        return 'answer';
    }

    public function getDefaultOptions(array $options) {
        return array(
            'data_class' => 'Company\SampleBundle\Entity\Answer',
        );
    }

}
Run Code Online (Sandbox Code Playgroud)

谢谢

forms service dependency-injection symfony

3
推荐指数
1
解决办法
775
查看次数