小编mic*_*jnr的帖子

如何使用symfony2 doctrine查询构建器选择不同的查询?

我有这个symfony代码,它检索与项目上的博客部分相关的所有类别:

$category = $catrep->createQueryBuilder('cc')
    ->Where('cc.contenttype = :type')
    ->setParameter('type', 'blogarticle')
    ->getQuery();

$categories = $category->getResult();
Run Code Online (Sandbox Code Playgroud)

这有效,但查询包含重复项:

Test Content
Business
Test Content
Run Code Online (Sandbox Code Playgroud)

我想DISTINCT在我的查询中使用该命令.我见过的唯一例子要求我编写原始SQL.我想尽可能地避免这种情况,因为我试图保持所有代码相同,因此它们都使用Symfony2/Doctrine提供的QueryBuilder功能.

我尝试distinct()像这样添加到我的查询中:

$category = $catrep->createQueryBuilder('cc')
    ->Where('cc.contenttype = :type')
    ->setParameter('type', 'blogarticle')
    ->distinct('cc.categoryid')
    ->getQuery();

$categories = $category->getResult();
Run Code Online (Sandbox Code Playgroud)

但它会导致以下错误:

致命错误:调用未定义的方法Doctrine\ORM\QueryBuilder :: distinct()

如何告诉symfony选择distinct?

php query-builder symfony doctrine-orm

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

限制在Symfony2中使用Doctrine DQL时检索的记录数量

我有以下查询:

   $latestcontent = $em->createQuery('
            SELECT c.title, c.content, c.lastedit, a.firstname, a.surname
            FROM ShoutMainBundle:Content c, ShoutMainBundle:Admin a
            WHERE c.author = a.id
            ORDER BY c.lastedit ASC'
            );
Run Code Online (Sandbox Code Playgroud)

我需要做的是限制从此查询返回的记录数量.但是,当我将LIMIT 10添加到SQL查询时,它会返回此错误:

错误:字符串的预期结束,得到'LIMIT'.

所以,我看了一下,发现你可以添加->limit(10)到代码中(在查询之后).但是这会引发这个PHP错误:

Fatal error: Call to undefined method Doctrine\ORM\Query::limit() in C:\wamp\www\src\Shout\AdminBundle\Controller\DefaultController.php on line 22
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php sql dql symfony doctrine-orm

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

如何从WordPress插件中的功能下载CSV文件?

我为客户端构建了一个插件,以便他们可以将数据下载为CSV文件.它已经设置好,当用户点击菜单中的链接时,CSV应该只是自动下载.但是,它并不像那样工作,只是将函数作为WordPress后端中的页面加载.

这是我对该函数的代码:

function download_payment_csv() {
    include 'lib/connection.php';

    $csv_output = '';

    $values = $db->query('SELECT * FROM tbPayments ORDER BY date DESC');

    $i=0;

    while ($rowr = mysql_fetch_row($values)) {
        for ($j=0;$j<$i;$j++) {
            $csv_output .= $rowr[$j].",";
        }
        $csv_output .= "\n";
    }

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private", false);
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"report.csv\";" );
    header("Content-Transfer-Encoding: binary");

    echo $csv_output;

}
Run Code Online (Sandbox Code Playgroud)

正如我所说,它只是返回一个空白屏幕.任何帮助,将不胜感激!

编辑 所以这是我正在使用的代码,从已经说过的内容中取出一些代码.

function download_payment_csv() {

    include 'lib/connection.php';

    $csv_output = '';

    $values = load_payment_csv();

    $fp = fopen("php://output", "w");

    $file = 'test_export'; …
Run Code Online (Sandbox Code Playgroud)

php csv wordpress

13
推荐指数
3
解决办法
7153
查看次数

时间戳字段中显示为十六进制的值(0x000000000000000866)在Microsoft SQL Server 2008上

我有一个表格,用于保存已发送的电子邮件.我决定在此表中添加一个TimeStamp字段,以便我可以跟踪电子邮件的发送时间.数据正在写入表中而没有任何问题,但当我使用Microsoft SQL Server 2008 Management Studio查看表内容时,Timestamp字段中包含的数据显示如下:0x000000000000000000845,即使在已写入的记录中也是如此自引入Timestamp值以来到数据库

然后我将字段类型更改为datetime,然后显示日期.但它显示日期1900-01-01 00:00:23.然后我将其更改回Timestamp字段,然后返回到当前的十六进制格式.

我做错了吗?

干杯

database sql-server

10
推荐指数
1
解决办法
7858
查看次数

在Highcharts中禁用PDF和SVG下载选项

我在我的网络应用程序中使用了Highcharts v4.0.3和exports.js,我希望能够为最终用户提供以下下载选项:

  • 下载图表为JPG
  • 将图表下载为PNG

但是,标准选项是:

  • 打印图表
  • 下载图表为JPG
  • 将图表下载为PNG
  • 以PDF格式下载图表
  • 下载图表作为SVG矢量图形

如何自定义它以便为用户提供JPG和PNG选项?

highcharts

8
推荐指数
1
解决办法
7338
查看次数

如何使用Symfony2中的选择表单字段指定传递的值

我有以下代码,显示在我的项目中添加子页面时可以使用的所有可用主页:

        $builder->add('subtocontentid',
          'entity',
           array(
                 'class'=>'Shout\AdminBundle\Entity\Content',
                 'property'=>'title',
                 'query_builder' => function (EntityRepository $repository)
                 {
                     return $repository->createQueryBuilder('s')
                            ->where('s.mainpage = ?1')
                            ->setParameter(1, '1')
                            ->add('orderBy', 's.created ASC');
                 }
        ));
Run Code Online (Sandbox Code Playgroud)

在表单中,它可以正常工作.它显示主页的正确标题.但是,将表单传递给数据库时,页面ID将传递给数据库.这不是我希望它工作的方式,我需要它将slug传递给数据库.

我知道我正在使用的代码检索数据库中的所有字段.我怎么能只选择Title字段和Slug字段,然后在表单中将Slug字段传递给数据库?

干杯

symfony doctrine-orm

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

如何增加Symfony 2表单上文件的上传限制?

我在Symfony中有一个用户上传文件的表单.这些文件的大小最大为50Mb.

但是,当我尝试上传大约10Mb的文件(在此之前,文件不大于7.2Mb)时,表单会重新加载此错误:

上传的文件太大了.请尝试上传较小的文件

这是一个验证错误,它不会显示为正确的Symfony2错误.

我已将upload_max_filesizePHP.ini文件中的设置设置为50MB,因此10MB文件应该不是问题吗?

forms file-upload symfony

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

如何通过URL传递变量的多个值

我正在构建一个应用程序,而且我已经陷入某种困境.

我正在尝试传递一个具有多个值的变量.所以我的网址将如下所示:

localhost/report.php?variable=value1, value2, value3
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何做到这一点.变量用于从数据库中检索数据.我正在使用PHP而没有Javascript.

任何帮助都会很棒!

编辑:
这是我在页面中选择变量的HTML:

<select name="types" size="19" multiple>
    <option value="all" selected>All Types</option>
    <option value="book" selected>Books</option>
    <option value="cd" selected>CD</option>
</select>
Run Code Online (Sandbox Code Playgroud)

因此用户可以选择Books和CD,我需要在"types"变量中传递这两个值.

php url urlvariables

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

根据篮子总额计算运费?

我已根据"价格与目的地"条件在我的商店实施了表费率系统.但是,我注意到运费是根据篮子的总分(增值税/税)计算的,而不是总计(包括增值税/税).我如何让Magento以总计为基础,而不是小计?

更新:我使用的Magento版本是版本1.5.0.1.

magento

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

如何使用Twig和Symfony2显示特定年份以来的年份列表

有了这个应用程序我正在构建我希望用户能够查看前几年的记录.因此,如果该用户的记录可以追溯到2005年,那么我希望能够显示自那时起的年份列表,包括那一年,例如:

年份清单:2012 | 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005年

我已经计算出SQL从数据库中检索最旧的记录,如下所示:

    // Retrieve Oldest Record
    $minimumyear = $dm->createQuery('
    SELECT min(msu.endDate) as msuMin
    FROM InstructorBundle:MapSubscriptions msu 
    LEFT JOIN InstructorBundle:MapContacts mc WHERE msu.contact = mc.id
    LEFT JOIN InstructorBundle:MapFamilies mf WHERE mc.family = mf.id
    WHERE mf.branch = :centre'
    )->setParameter('centre', $centreid);

    $minyear = $minimumyear->getResult();
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,现在我已经度过了最古老的一年,我不知道如何使用Twig来显示我需要的列表.我已经考虑过延长Twig以允许这个,但是我不想暂时离开那条大道只是因为在Twig中有一个函数允许我这样做.

如何使用Twig显示我需要的列表?

symfony twig

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