PHP-Code:
<?php
namespace AppBundle\Hooks;
use Contao\Database;
use Contao\Widget;
use Contao\System;
class Forms {
public function myValidateFormField(Widget $objWidget, $intId, $arrForm){
$form_id = \Input::post('form_id');
$tablenames = [
1 => 'tl_an_testlauf',
// ...
];
$tablename = isset($tablenames[$form_id]? $tablenames[$form_id] : null;
if (null === $tablename) {
System::log("Konnte Tabellenname zu Formular-ID '$form_id' nicht bestimmen", __METHOD__, TL_ERROR);
$objWidget->addError('Der Gutschein-Code ist ungültig oder wurde schon verwendet!');
return $objWidget;
}
if ($arrForm['formID'] == \Input::post('form_id')) {
if($objWidget->name == 'gutscheincode'){
$sql = "SELECT * FROM $tablename WHERE gutscheincode=?";
$result = Database::getInstance()->prepare($sql)->execute($objWidget->value);
if($result->numRows > 0){
$objWidget->addError('Dieser Gutschein-Code ist ungültig oder wurde schon verwendet!');
}
}
}
return $objWidget;
}
}
So wird eine schließende Klammer in Zeile 19 bemängelt
PHP-Code:
$tablename = isset($tablenames[$form_id]? $tablenames[$form_id] : null;
und so
PHP-Code:
$tablename = isset($tablenames[$form_id]? $tablenames[$form_id] : null);
kommt folgene Fehlermeldung in den Logs
Code:
[2019-10-29 08:48:07] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 0): Compile Error: Cannot use isset() on the result of an expression (you can use \"null !== expression\" instead) at /.../app/Resources/contao/classes/AppBundle/Hooks/Forms.php:18)"} []
Lesezeichen