$this->data = Doctrine_Query::create()
->from('Category c')
->innerJoin('c.Product p')
->whereIn('c.slug', array('cpu', 'mainboards', 'ram', 'hdd', 'videocards', 'cases'))
->addWhere('p.is_published = ?', true)
->addOrderBy('FIELD(c.slug, "cpu", "mainboards", "ram", "hdd", "videocards", "cases")')
->execute()
;
вторник, 22 февраля 2011 г.
Symfony: doctrine custom sql order
понедельник, 7 февраля 2011 г.
Symfony: upload file, save original name
public function generatePicFilename($file = null)
{
if (null === $file) {
return null;
}
return $file->getOriginalName();
}
среда, 2 февраля 2011 г.
Symfony: Doctrine IndexBy field
$posts = Doctrine_Query::create()
->from('Post p INDEXBY id')
->fetchArray()
;
на выходе получаем массив индексированный по реальным значениям id,
а не [0 => array(), 1 => array() ... ]
p.s. спасибо develop7 за наводку
суббота, 29 января 2011 г.
Symfony: doctrine raw sql, get alphabet from i18n model
Задача: получить алфавит из i18n модели, для разных языков.
Показать только те буквы на которые начинаются имена.
in actions.class.php
in template
Css
Показать только те буквы на которые начинаются имена.
in actions.class.php
$lang = $request->getParameter('lang', 'ru');$query = "SELECT substring(`name`,1,1) as firstletterFROM `xxx_translation`WHERE `lang` = '".$lang."' ANDsubstring(`name`,1,1) <> ''GROUP BY substring(`name`,1,1)";$pdo = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();$stmt = $pdo->prepare($query);$stmt->execute();$this->abc = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
in template
<?php if ($abc): ?>
<ul id="abcList">
<?php foreach ($abc as $letter): ?>
<li><?php echo link_to($letter, '@user_list?search='.$letter.'&pos=start')?> </li>
<?php endforeach; ?>
</ul>
<br clear="all" />
<?php endif; ?>
Css
ul#abcList li {
float: left;
display: inline;
list-style: none;
padding: 4px;
}
Подписаться на:
Сообщения (Atom)