我有这个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?
我有以下查询:
$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)
我究竟做错了什么?
我为客户端构建了一个插件,以便他们可以将数据下载为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) 我有一个表格,用于保存已发送的电子邮件.我决定在此表中添加一个TimeStamp字段,以便我可以跟踪电子邮件的发送时间.数据正在写入表中而没有任何问题,但当我使用Microsoft SQL Server 2008 Management Studio查看表内容时,Timestamp字段中包含的数据显示如下:0x000000000000000000845,即使在已写入的记录中也是如此自引入Timestamp值以来到数据库
然后我将字段类型更改为datetime,然后显示日期.但它显示日期1900-01-01 00:00:23.然后我将其更改回Timestamp字段,然后返回到当前的十六进制格式.
我做错了吗?
干杯
我在我的网络应用程序中使用了Highcharts v4.0.3和exports.js,我希望能够为最终用户提供以下下载选项:
但是,标准选项是:
如何自定义它以便为用户提供JPG和PNG选项?
我有以下代码,显示在我的项目中添加子页面时可以使用的所有可用主页:
$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中有一个用户上传文件的表单.这些文件的大小最大为50Mb.
但是,当我尝试上传大约10Mb的文件(在此之前,文件不大于7.2Mb)时,表单会重新加载此错误:
上传的文件太大了.请尝试上传较小的文件
这是一个验证错误,它不会显示为正确的Symfony2错误.
我已将upload_max_filesizePHP.ini文件中的设置设置为50MB,因此10MB文件应该不是问题吗?
我正在构建一个应用程序,而且我已经陷入某种困境.
我正在尝试传递一个具有多个值的变量.所以我的网址将如下所示:
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"变量中传递这两个值.
我已根据"价格与目的地"条件在我的商店实施了表费率系统.但是,我注意到运费是根据篮子的总分(增值税/税)计算的,而不是总计(包括增值税/税).我如何让Magento以总计为基础,而不是小计?
更新:我使用的Magento版本是版本1.5.0.1.
有了这个应用程序我正在构建我希望用户能够查看前几年的记录.因此,如果该用户的记录可以追溯到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 ×5
php ×4
doctrine-orm ×3
csv ×1
database ×1
dql ×1
file-upload ×1
forms ×1
highcharts ×1
magento ×1
sql ×1
sql-server ×1
twig ×1
url ×1
urlvariables ×1
wordpress ×1