小编Acy*_*yra的帖子

在Doctrine QueryBuilder中计算行数

我正在使用Doctrine的QueryBuilder来构建查询,我想从查询中获得结果的总数.

$repository = $em->getRepository('FooBundle:Foo');

$qb = $repository->createQueryBuilder('n')
        ->where('n.bar = :bar')
        ->setParameter('bar', $bar);

$query = $qb->getQuery();

//this doesn't work
$totalrows = $query->getResult()->count();
Run Code Online (Sandbox Code Playgroud)

我只想对此查询运行计数以获取总行数,但不返回实际结果.(在此计数查询之后,我将使用maxResults进一步修改查询以进行分页.)

symfony doctrine-orm

190
推荐指数
8
解决办法
21万
查看次数

单击鼠标即可选择所有DIV文本

当用户点击DIV时,如何突出显示/选择DIV标签的内容......我们的想法是突出显示/选择所有文本,这样用户就不需要用鼠标手动突出显示文本了错过了一些文字?

例如,假设我们有一个DIV如下:

<div id="selectable">http://example.com/page.htm</div>
Run Code Online (Sandbox Code Playgroud)

...当用户点击任何该URL时,整个URL文本都会突出显示,以便他们可以轻松地在浏览器中拖动所选文本,或者通过右键单击复制完整的URL.

谢谢!

javascript css

128
推荐指数
9
解决办法
11万
查看次数

访问Symfony2请求对象中的POST值

好的,这是一个新手问题,但我无法在任何地方找到答案.在Symfony2的控制器中,我想从我的一个表单中访问POST值.在控制器中我有:

public function indexAction()
{ 
    $request = $this->get('request');
    if ($request->getMethod() == 'POST') {
        $form = $this->get('form.factory')->create(new ContactType());
        $form->bindRequest($request);
        if ($form->isValid()) {
            $name_value = $request->request->get('name');
Run Code Online (Sandbox Code Playgroud)

不幸的$name_value是没有退货.我究竟做错了什么?谢谢!

php http-post symfony

93
推荐指数
6
解决办法
27万
查看次数

如何在Symfony2服务类中访问Doctrine DBAL?

我正在学习Symfony2(和OOP)并希望创建一个可在我的应用程序中使用的服务.此服务获取值foo,根据数据库表进行检查,并返回值栏.

我有一个小班

namespace Acme\TestBundle\Toolbox;

class StringToolbox
{
    public function lookupSomething($foo)
   {

        $conn = $this->get('database_connection');
        $sql = "SELECT bar FROM bar_list WHERE foo = :foo";
        $stmt = $conn->prepare($sql);
        $stmt->bindValue("foo", $foo);
        $stmt->execute();


        return $bar;
    }


}
Run Code Online (Sandbox Code Playgroud)

我的设置是:

services:
    toolbox:
       class:        Acme\TestBundle\Toolbox
        arguments:   [@database_connection]
Run Code Online (Sandbox Code Playgroud)

但它抛出一个错误,说get()方法是未定义的.我被困了 - 我怎么能在服务中使用DBAL?谢谢!

doctrine symfony

26
推荐指数
2
解决办法
2万
查看次数

Symfony2路由 - 路由子域

有没有办法在Symfony2中设置基于主机名的路由?

我在官方文档中没有找到关于这个主题的任何内容.
http://symfony.com/doc/2.0/book/routing.html

我想根据给定的主机名路由请求:
foo.example.com
bar.example.com
{{subdomain}}.example.com

所以从本质上讲,控制器会将当前子域作为参数传递.

与Zend解决方案类似:http:
//framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.hostname

$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
    ':username.users.example.com',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    )
);
$plainPathRoute = new Zend_Controller_Router_Route_Static('');

$router->addRoute('user', $hostnameRoute->chain($plainPathRoute));
Run Code Online (Sandbox Code Playgroud)

我希望这是可能的,我只是错过了它.
提前致谢!

php routing symfony

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

如何使用Symfony2中的FormBuilder将表单的URL设置为POST?

我在我的Controller中动态加载不同的表单类并在我的模板中显示它们.这很好,除了Symfony2文档显示手动将模板的路由添加到模板中.

<form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}

    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

我需要在FormBuilder类中设置该表单操作 - POST路由(例如'task_new')根据我正在使用的表单类而不同.有没有办法在FormBuilder类中设置表单操作URL?我们怎样才能获得{{form_widget(form)}}来呈现完整的表单,而不仅仅是行?谢谢!

symfony

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

如何在Symfony2中进行LIKE数据库查询

这应该很简单,但我找不到一个有效的例子.这是一个控制器方法,它抛出错误"无效的参数号:绑定变量的数量与令牌的数量不匹配".我成功发布了"searchterm"变量,但无法使查询生效.缺什么?谢谢!

 public function searchAction()
{
    $request = $this->getRequest();

    $searchterm = $request->get('searchterm');

    $em = $this->getDoctrine()->getEntityManager();

    $query = $em->createQuery("SELECT n FROM AcmeNodeBundle:Node n WHERE n.title LIKE '% :searchterm %'")
             ->setParameter('searchterm', $searchterm);

    $entities = $query->getResult();

    return array('entities' => $entities);

}
Run Code Online (Sandbox Code Playgroud)

doctrine dql query-builder symfony doctrine-orm

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

具有数据库连接依赖关系Symfony2的自定义约束验证器

我正在向Symfony2项目添加自定义验证查询.

文档缺少一个完整的示例,我不确定如何将数据库连接实际注入Validator类.我在我的配置中创建了服务,在我的Constraint类中添加了validatedBy别名方法,并在我的Validator类中设置了它:

use Doctrine\DBAL\Connection;

class ZipDatabaseValidator extends ConstraintValidator
{

    /**
     *
     * @var Connection
     */
    private $connection;

   public function __construct(Connection $dbalConnection)  {

        $this->connection = $dbalConnection;
    }

    public function validate($zipcode, Constraint $constraint)
    {

        $sql = 'SELECT * FROM zip_table WHERE zip_code = ?';
        $stmt = $this->connection->prepare($sql); 
         ...
Run Code Online (Sandbox Code Playgroud)

这是我的服务配置:

validator.node.zip_in_database:
        class: Acme\Bundle\Validator\Constraints\ZipDatabaseValidator
        arguments: [@database_connection]
        tags:
            - { name: validator.constraint_validator, alias: zip_in_database }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我不断收到错误:

可捕获的致命错误:传递给Acme\Bundle\Validator\Constraints\ZipDatabaseValidator :: __ construct()的参数1必须是Doctrine\DBAL\Connection的实例,没有给出,

我是如何将其设置为服务或以其他方式注入数据库连接?

symfony

11
推荐指数
1
解决办法
5028
查看次数

PhpStorm不承认Doctrine实体类

PhpStorm似乎不承认我的任何Doctrine实体类或它们的方法.

$comment = $em->getRepository('MyBundle:Comment')->findOneBy(array('id' => $id));

$comment->getId(); 
/* PHPSTORM THROWS WARNING: Method getId() not found in subject class */
Run Code Online (Sandbox Code Playgroud)

只有当我明确地评论它时,错误才会消失 - 这真的使我的控制器变得混乱.

/* @var \MyBundle\Entity\Comment $comment */
$comment = $em->getRepository('MyBundle:Comment')->findOneBy(array('id' => $id));
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的实体类中为PhpStorm记录这个?

我正在使用PhmStorm 8的Symfony2插件.谢谢!

symfony phpstorm

8
推荐指数
2
解决办法
4567
查看次数

使用 Swiftmailer 将唯一参数传递给 SendGrid

嗨,我正在使用 php 邮件程序 Swiftmailer 使用 SMTP API 通过 SendGrid 发送。我们可以将唯一参数传递给 SendGrid 以帮助跟踪电子邮件。我已经成功地使用 Swiftmailer 传递了独特的标头:

   $headers = $message->getHeaders();

   $headers->addTextHeader('AccountId', $accountId);
Run Code Online (Sandbox Code Playgroud)

虽然这些值已成功注入到已发送电子邮件的标头中,但 SendGrid 不会将它们传回我的事件 webhook 或控制面板中。

我也试过这个,这也不起作用:

$headers = $message->getHeaders();

        $args = '  {
    "customerAccountNumber": "55555",
    "activationAttempt": "1",
    "New Argument 1": "New Value 1",
    "New Argument 2": "New Value 2",
    "New Argument 3": "New Value 3",
    "New Argument 4": "New Value 4"

}';
        $headers->addTextHeader('unique_args', $args);
Run Code Online (Sandbox Code Playgroud)

这可能是 SendGrid 支持的问题,但由于它与 Swiftmailer 相关,我想我会先在这里尝试。谢谢!

php swiftmailer sendgrid

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