[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