Hallo liebe Shopware-Gemeinde, was ist der Best Practice für den Zugriff auf die POST-Variable innerhalb eines Plugins? Es geht auch darum zu prüfen, ob beispielsweise eine Checkbox gesetzt ist oder nicht (isset). Möglichkeiten wären ja:
b über[/b] $post = Shopware()-\>Modules()-\>Admin()-\>sSYSTEM-\>\_POST; if(isset($post['agb'])){ ... }
Wobei dies ja deprecated ist, aber deswegen ja noch so funktioniert.
b über[/b] $post = Shopware()-\>System()-\>\_POST; if(isset($post['agb'])){ ... }
Diese Variante funktioniert ja auch. Ist dies evtl. Best Practice?
Über: $controller = $arguments-\>getSubject(); $request = $controller-\>Request(); $request-\>getParam("agb");
kommt man ja zwar an den Wert, kann ja aber nicht auf isset prüfen.
Beste Grüße Sebastian
Hi, es gibt auch “$request->has()” - bei “$request->getParam()” kannst du zudem einen Standard-Wert hinterlegen (im Standard: null), was ggf. auch hilfreich ist. Grundsätzlich solltest du auf den Zugriff auf (s)System verzichten, und das lokale Request-Objekt oder das aus dem “Subject” verwenden. Daniel
[quote=„Daniel Nögel“]Hi, es gibt auch „$request->has()“ - bei „$request->getParam()“ kannst du zudem einen Standard-Wert hinterlegen (im Standard: null), was ggf. auch hilfreich ist. Daniel[/quote] Hallo Daniel, danke erst einmal für deine Antwort. Kann ich also bedenkenlos $post = Shopware()->Modules()->Admin()->sSYSTEM->_POST bzw. eher $post = Shopware()->System()->_POST im Plugin verwenden? Ich möchte ungern den Wert einer Checkbox verwenden, deswegen brauch ich isset. Beste Grüße Sebastian
Hi, die beiden nach Möglichkeit eher nicht - mit $args->getSubject()->Request()->Post() / has() und getParam() sollte aber das gleiche aus einem Plugin möglich sein, oder? Daniel
1 „Gefällt mir“
Nein, du sollst über das request Object (Enlight_Controller_Request_Request interface) die Parameter holen. Je nachdem, wie dein event aussieht, kannst du zb über $arguments->get( “subject” )->Request() an das Objekt kommen. Viele Grüße Edit: der Daniel mal wieder schneller…
[quote=„Daniel Nögel“]Hi, die beiden nach Möglichkeit eher nicht - mit $args->getSubject()->Request()->Post() / has() und getParam() sollte aber das gleiche aus einem Plugin möglich sein, oder? Daniel[/quote] Hallo Daniel, danke für die Info. Ja, deine vorgeschlagene Variante if($request-\>has('agb')) { if($request-\>getParam("agb") == "12345"){ .... } }
anstatt $post = Shopware()-\>System()-\>\_POST; if(isset($post['agb'])){ if($post['agb'] == "12345"){ ... } }
funktioniert auch und werde ich nun bevorzugt verwenden. Beste Grüße Sebastian