GET random Object mit Doctrine
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
Symfony2 Doctrine Table Join ohne Relation
Wer in Doctrine Tabellen joinen möchte ohne das diese durch Entity Relationen definiert sind, kann folgendermaßen vorgehen:
public function getInvoicesNotInElster() { $query = $this->em->createQueryBuilder() ->select('i') ->from('AcmeAppBundle:Invoice', 'i') ->leftJoin('AcmeAppBundle:Elster', 'e', 'WITH', 'e.number = i.number_origin') ->where('i.cancelled = 0') ->andWhere('e.number IS NULL') ->getQuery(); return $query->getResult(); }
builder, doctrine, dql, join, left join, query, relation, right join, sql, symfony, table, without
doctrine create and drop table on the fly by orm
um in doctrine erst in der app tables anzulegen oder auch zu droppen kannst du ein yaml schema
MyTestOrm: tableName: my_test_table columns: id: type: integer(8) primary: true autoincrement: true unsigned: true title: type: string(255) notnull: true created_at: type: timestamp notnull: true indexes: id: fields: [id] title: fields: [title]
anlegen und die orms daraus generieren.
dann kannst du in deiner app die table für die orm anlegen
Doctrine::createTablesFromArray( array( 'MyTestOrm' ) );
bzw. auch wieder droppen
$table = Doctrine_Core::getTable('MyTestOrm'); $export = new Doctrine_Export(); $export->dropTable($table->getTableName());
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