Inspiriert von den anderen Community-Wikis bin ich daran interessiert, mehr über die weniger bekannten Tipps, Tricks und Funktionen von Kohana zu erfahren.
Bitte geben Sie pro Antwort nur einen Tipp an.
Fügen Sie bei Bedarf Kohana-Versionen hinzu.
Das ist ein Community-Wiki.
Generieren von Form::select()-Optionen aus dem Datenbankergebnis
Es sollte beachtet werden, dass dies nicht auf das ORM beschränkt ist und für alle Datenbankergebnisse verwendet werden kann (sie alle unterstützen as_array). Siehe die Datenbankergebnisse Informationen für weitere Details.
Wenn Sie eine Standardoption hinzufügen möchten:
$options = Arr::merge(array('Please select a value.'), $options);
Zuletzt ausgeführte Abfrage anzeigen
Kohana 3.1 und 3.0
echo Database::instance()->last_query
Entnommen aus In Kohana 3, wie finden Sie Fehler heraus, die während einer Abfrage gemacht wurden?.
Wenn Sie sich jetzt auf localhost befinden, befinden Sie sich im Entwicklungsmodus, andernfalls im Produktionsmodus
Bearbeiten: Unterstützung für IPv6 hinzugefügt
Der Unterschied zwischen this->request->route->uri() und this->request->uri() (Kohana 3)
// Current URI = welcome/test/5
// Using default route ":controller/:action/:id"
// This returns "welcome/test/5"
echo $this->request->uri();
// This returns "welcome/test1/5"
echo $this->request->uri(array( 'action' => 'test1' ));
// This returns "welcome/index"
echo $this->request->route->uri();
// This returns "welcome/test1"
echo $this->request->route->uri(array( 'action' => 'test1' ));
Wie Sie sehen, verwendet $this->request->route->uri() aktuelle Routenvorgaben (id ist null), während $this->request->uri() aktuelle URI-Segmente anwendet.
Fügen Sie mithilfe von ORM Daten zu Pivot-Tabellen hinzu
ORMs add Die Funktion akzeptiert einen dritten Parameter, mit dem Sie zusätzliche Daten angeben können, die in der 1Pivot-Tabelle1 gespeichert werden sollen.
Wenn beispielsweise ein Benutzer viele Rollen und eine Rolle viele Benutzer hat (über eine Tabelle mit dem Namen 1roles_users1), können Sie Informationen in der 1pivot-Tabelle1 speichern, indem Sie ein Array von Spaltenschlüsseln und Datenwerten als drittes Argument an die übergeben add Methode.
Kohana 3.1
Nicht unterstützt. Die Alternative wäre, die zu laden pivot table und fügen Sie die Daten wie bei jeder anderen Tabelle hinzu.
wo$role ist ORM::factory('role', array('name' => 'user'));
Schon was neues gelernt. Danke.
– Der Pixel-Entwickler
8. März 2010 um 20:29 Uhr
Sie können das auch tun, indem Sie $_created_column im Modell definieren 🙂
– Kem
1. August 2010 um 12:07 Uhr
@ Kemo; Nicht auf Pivot-Tabellen (es sei denn, Sie haben ein Modell dafür definiert). @Dusan; Wie lesen Sie die Daten aus dem Pivot zurück? Ich habe keine Möglichkeit gefunden, dies mit ORM zu tun.
@Luke Ich habe auch keine Möglichkeit gefunden, diese Daten mit ORM zurückzulesen =(
– dusan
5. März 2011 um 15:54 Uhr
Deaktivieren Sie auto_rendering für AJAX-Anfragen
Bei diesen Codebeispielen wird davon ausgegangen, dass Sie vom Vorlagencontroller aus erweitern.
Kohana 3.1
public function before()
{
parent::before();
if (Request::current()->is_ajax())
{
$this->auto_render = FALSE;
}
}
Kohana 3.0
public function before()
{
parent::before();
if (Request::$is_ajax)
{
$this->auto_render = FALSE;
}
}
Schon was neues gelernt. Danke.
– Der Pixel-Entwickler
8. März 2010 um 20:29 Uhr
Sie können das auch tun, indem Sie $_created_column im Modell definieren 🙂
– Kem
1. August 2010 um 12:07 Uhr
@ Kemo; Nicht auf Pivot-Tabellen (es sei denn, Sie haben ein Modell dafür definiert). @Dusan; Wie lesen Sie die Daten aus dem Pivot zurück? Ich habe keine Möglichkeit gefunden, dies mit ORM zu tun.
@Luke Ich habe auch keine Möglichkeit gefunden, diese Daten mit ORM zurückzulesen =(
– dusan
5. März 2011 um 15:54 Uhr
Wartbare Strecken
Anstatt Ankerpositionen in Ihrem HTML und PHP fest zu codieren, ist es eine gute Idee, das Routing umzukehren. Das bedeutet im Wesentlichen, dass Sie Routenstandorte definieren und diese dann verwenden. Wenn Sie jemals den Standort ändern müssen, geschieht dies an einem Ort und nicht an Hunderten.
Routen können überall definiert werden, aber es ist eine gute Praxis, sie in den Anwendungs-Bootstrap oder Ihren Modul-Bootstrap (init.php) einzufügen.
Ein regulärer Ausdruck, um zu begrenzen, was die <part> wird gegen gematcht.
Wenn ein Teil von Klammern umgeben ist, ist dieser Teil optional. Wenn ein Benutzer kein Teil bereitgestellt hat und Sie einen Standardwert bereitstellen möchten, verwenden Sie die defaults-Methode, um Werte anzugeben.
->defaults(array('action' => 'login'));
Kohana 3.1 und 3.0
Der folgende Code wird jetzt verwendet, um umkehrbare Routen zu haben. Der URL-Pfad kann aktualisiert werden und alle Ihre URLs sollte arbeiten wie bisher.
vielleicht eine andere Idee: URL::site(Route::get(‘route_name’)->uri(array(‘controller’ => ‘somecontroller’, ‘arg’ => ‘somearg’)));
– SpadXIII
1. August 2010 um 11:57 Uhr
Oder vielleicht Route::url('route_name', array('param' => 'value')); Ich würde auch empfehlen, die Links an Ihre Ansicht weiterzugeben, anstatt zu erwarten, dass die Ansicht sie erstellt – hilft, die Logik aus der Ansicht herauszuhalten.
– Matt
4. September 2010 um 15:41 Uhr
13334500cookie-checkLieblings-Kohana-Tipps und -Features? [closed]yes