[Linz-pm] Catalyst-Model Klasse und parameter
Stefan Seifert
nine at detonation.org
Thu Aug 22 02:10:01 PDT 2013
On Thursday 22 August 2013 10:58:30 WFB wrote:
> Allerdings habe ich bei einem Projekt ein Problem, dass ich bis jetzt nicht
> lösen konnte:
>
> Wie bekomme ich Parameter in eine Catalyst::Model Klasse?
Nicht in die Klasse, sondern in die Methode.
> Zum Hintergrund. Ich bin auf evaluieren ob wir unseren SQL-Server zu
> gunsten von Flatfiles aufgeben können.
Das klingt jetzt nicht unbedingt nach Fortschritt :) Um welche Art von Daten
und Zugriffen gehts da? Wenn du nicht von einem externen SQL-Server abhängig
sein willst, würde sich SQLite anbieten. Braucht keinen Server, speichert die
Daten in einer einzelnen Datei und bietet dir trotzdem die Vorzüge einer SQL-
Datenbank.
> Dazu habe ich mit 'perl script/myapp_create.pl model flatfiles' eine neue
> Modelklasse erzeugt. Diese Klasse liest die Flatfiles ein und gibt das
> Ergebnis zurück ($c->model('flatfiles')->get_data;).
> Funktioniert wunderbar. Jetzt will ich aber nicht immer alle Daten haben,
> darum wollte ich Parameter an die Funktion übergeben.
> $c->model('flatfile')->get_data($id) funktioniert aber nicht.
>
> Die Funktion:
> sub get_data {
> my ($self, $c) = @_;
Catalyst macht weniger Magie, als man vielleicht annehmen könnte. Der $c-
>model('flatfiles') Aufruf gibt dir einfach nur ein Objekt der
MyApp::Model::flatfiles Klasse. Recht viel mehr passiert da nicht.
Wenn deine Methode jetzt als Parameter $self, $c, $id erwartet, musst du die
auch übergeben (bis auf $self, das machst du implizit, indem du die Methode
mit dem -> aufrufst):
$c->model('flatfile')->get_data($c, $id);
LG,
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.pm.org/pipermail/linz-pm/attachments/20130822/b78f33c9/attachment.bin>
More information about the Linz-pm
mailing list