Die cakephp Community trifft sich erstmals in Berlin. Das ganze findet vom 9. Juli bis zum 12. Juli statt. Mehr Infos gibt es auf cakefest
Um mit Arrays zu arbeiten, bietet es sich an die Klasse Set von cake zu verwenden. Ich verwende meist die Methode extract. Es gibt eine gute Syntax womit man auf einfache Weise Daten aus einem Array extrahieren kann. $datas = array( 0 => array('foo' => array( 'id' => 'test123', 'bar'=>'blub') ), 1 => array('foo' => [...]
Wenn eine bestehende Datenbankstruktur mit Cake verwendet werden soll, ist es oft so, dass es die Feldbezeichnungen nicht dem Cake Standard entsprechen. Um aber dennoch eine Beziehung herstellen zu können benötigt man zusätzliche Parameter in seinem Model. Wie so was aussehen könnte ist hier zu sehen:
$this->Model->find('all', array('conditions' => array('ORDER_ID' =>$oid, 'NAME' => "guterAuftrag"))); $this->set('products', $this->Model1->Model2->find('list' , array( 'fields' => array('Produkt.produkt_id','Produkt.name'), 'recursive' => 2 )));
Entweder habe war ich unfähig richtig zu suchen oder es gibt wirklich keine Möglichkeit mit CakePHP mehr als eine Checkbox anzulegen. Jedenfalls habe ich mir eine eigene Funktion zusammengeschustert. Ich brauchte eine Ansammlung von Checkboxen um ein oder mehrere Produkte auswählen zu können. Hier das Ergebnis für die View:
Will man zu der Sortierfunktion des Paginators noch Bilder hinzufügen, wie z.B. Pfeile, dann kann man über die Funktion $paginator->sortDir() dem Link eine CSS Klasse mit geben, die genauso heißt, wie die Sortierung. Hier ein Beispiel: echo $paginator->sort('Best. Nr', 'ORDER_ID',array('class'=>$paginator->sortDir())); dies gibt dem Link eine css Klasse mit die entweder asc oder desc heißt. Und [...]
/** * By Cleiton Wasen * wasenbr at gmail.com * Based in http://www.appservnetwork.com/modules.php?name=News&file=article&sid=8 * */ class XlsHelper { var $helpers = array(); /** * set the header configuration * @param $filename the xls file name */ function setHeader($filename) { header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download");; header("Content-Disposition: attachment;filename=$filename"); [...]
class DatumHelper extends Helper { /* Diese Funktion wandelt SQL Datumsangaben im Datetimeformat * in das deutsche Datumsformat um. Folgende Optionen können * angegeben werden: * 0 oder keine Angabe: Nur das Datum wird erstellt. * 1: Es werden auch Stunden und Minuten ausgegeben. * 2: Es werden Stunden, Minuten und Sekunden ausgegeben. */ function [...]
Der Standard Paginator von Cake kann kein “group by” absetzen. Um das zu ändern muss man die beiden Methoden paginate und paginateCount im Model überschreiben: public function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()) { $conditions[] ="1 = 1 GROUP BY block_id"; $recursive = -1; return $this->findAll($conditions, $fields, $order, [...]
möchte man mit der find Methode von CakePHP die Datenbankeinträge zählen, ist diese Abfrage hilfreich: $Anzahl = $this->Tabelle->find('count', array( 'conditions' =>array( 'tab_id='.$TabID,'bla = 0')));