GET random Object mit Doctrine
23. Mai 2017
Kommentare deaktiviert für GET random Object mit Doctrine By webpirat
Doctrine selbst hat keine ORDER BY rand() Funktion implementiert. Aber es gibt eine Lösung. Man lässt sich den total count der rows ausgeben und nutzt die PHP interne rand() Funktion um FirstResult zu definieren.
/** * @return mixed */ public function getTotal() { return $this->getEntityManager()->createQueryBuilder() ->select('COUNT(p.id)') ->from('AppBundle:Product', 'p') ->getQuery() ->getSingleScalarResult(); } /** * @return mixed */ public function getRandom() { return $this->getEntityManager()->createQueryBuilder() ->select('p') ->from('AppBundle:Product', 'p') ->setFirstResult(rand(0, $this->getTotal()-1)) ->setMaxResults(1) ->getQuery() ->getSingleResult(); }
doctrine, MySQL, object, orm, PHP, rand(), random, row, total
der Criteria Builder für Propel ORM Criterias
25. Oktober 2009
Kommentare deaktiviert für der Criteria Builder für Propel ORM Criterias By webpirat
Die Propel ORM für PHP bedient sich einer eigenen Syntax (Criterias) um Queries zusammenzustellen.
Hier gibt es einen Criteria Builder, den man mit Standard SQL füttern kann.
Der Criteria Builder konvertiert sodann das eingegebene SQL Statement in ein Propel Criteria.
So wird aus diesem kleinen SQL Statement:
SELECT user.* FROM user WHERE user.state = 100 AND (user.name = 'user' OR user.email = 'user@domain.tld')
diese Propel Criteria:
$c = new Criteria(); $crit0 = $c->getNewCriterion(UserPeer::STATE, 100); $crit1 = $c->getNewCriterion(UserPeer::NAME, 'user'); $crit2 = $c->getNewCriterion(UserPeer::EMAIL, 'user@domain.tld'); // Perform OR at level 1 ($crit1 $crit2 ) $crit1->addOr($crit2); // Perform AND at level 0 ($crit0 $crit1 ) $crit0->addAnd($crit1); // Remember to change the peer class here for the correct one in your model $c->add($crit0); $result = TablePeer::doSelect($c); // This loop will of course need to be edited to work foreach ($result as $obj) { //$val = $obj->getValue(); }
Einen Versuch ist es Wert.
Neueste Beiträge
Kategorien
- Agavi
- Android
- ANT
- Apache
- Bildbearbeitung
- CMS Systeme
- Codeigniter
- CSS
- Debugging
- Deployment
- Doctrine ORM
- Flash
- Frameworks
- GIT
- Javascript
- Kanban
- Kohana
- Layout & Styles
- Lightroom
- Lighttpd
- Linux
- Management & Prozesse
- MySQL
- Nginx
- OffTopic
- Photographie
- Photoshop
- PHP
- PhpMyAdmin
- PHPUnit
- Postfix
- Propel ORM
- Ruby On Rails
- Scrum
- Server
- Shell
- Sicherheit
- SOAP
- Social Media
- Sonata
- SVN
- Symfony2
- Versionierung
- VIM
- Wordpress
- XDebug
- XML
- XT Commerce
- Zend