Hallo liebe Community,
ich möchte gerne in einem Gewinnspiel Formular eine E-Mail Prüfung einbauen.
Die Mail Adressen werden über Contao Leads in einer Datenbank gespeichert. Wenn nun ein Teilnehmer schon eingetragen ist, soll eine Fehlermeldung erscheinen.
Ich habe folgenden Hook zum Testen angelegt:
Code:
<?php
namespace AppBundle;
use Contao\Database;
class MyHooks {
public function myValidateFormField(Widget $objWidget, $intId){
$sql = "SELECT value FROM tl_lead_data";
$result = Database::getInstance()->prepare($sql)->execute('mustermann@test.de');
if($objWidget->email == $result){
echo "Dieser Nutzer ist schon angemeldet.";
}
return $objWidget;
}
}
Leider erscheint folgende Fehlermeldung im Log:
Code:
[2019-01-21 15:36:15] request.INFO: Matched route "contao_index". {"route":"contao_index","route_parameters":{"_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\FrontendController::indexAction","_scope":"frontend","_route":"contao_index"},"request_uri":"http://metamodels.zpn-live.de/","method":"POST"} []
[2019-01-21 15:36:15] security.INFO: Attempting SimplePreAuthentication. {"key":"frontend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
[2019-01-21 15:36:15] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Type error: Argument 1 passed to AppBundle\\MyHooks::myValidateFormField() must be an instance of AppBundle\\Widget, instance of Contao\\FormTextField given, called in /var/www/vhosts/xxx/xxx/vendor/contao/core-bundle/src/Resources/contao/forms/Form.php on line 216 at /var/www/vhosts/xxx/xxx/src/AppBundle/MyHooks.php:9)"} []
Hat jemand eine Idee?
Grüße,
Dirk
Lesezeichen