Hallo zusammen,
ich bin aktuell ratlos.
In meiner Komponente können für Einträge des Typs "Items" Tags hinterlegt werden. Das funktioniert wunderbar.
Nun sollen auch andere Einträge (hier: Typ "Goal") mit Tags versehen werden. Allerdings erhalte ich hier folgende Rückmeldung:
ZitatSpeichern fehlgeschlagen! Fehler:
Dies ist nur dann der Fall, wenn in der Table der Observer aktiv ist.
Meine Quellen:
Form:
<field name = "tags" type = "tag" label = "JTAG" description = "JTAG_DESC" class = "inputbox span12 small" multiple = "true" />
getItem (Model)
/** * getItem function. * * @access public * @param mixed $pk (default: null) * @return void */public function getItem($pk = null){ if ($item = parent::getItem($pk)) { // Convert the metadata field to an array. $registry = new JRegistry; if(isset($item->metadata)) { $registry->loadString($item->metadata); $item->metadata = $registry->toArray(); } if (!empty($item->id)) { $item->tags = new JHelperTags; $item->tags->getTagIds($item->id, 'com_bestia.goal'); $item->metadata['tags'] = $item->tags; } } return $item;}
constructor (Table)
public function __construct(&$db){ parent::__construct('#__bestia_goals', 'id', $db); JTableObserverTags::createObserver($this, array('typeAlias' => 'com_bestia.goal'));}
store-Methode (Table)
/**
* store function.
*
* @access public
* @param bool $updateNulls (default: false)
* @return void
*/
public function store($updateNulls = false)
{
if(!empty($this->dateofbirth)) // Prepare DOB to be saved in database
{
// Set this to a format the sql-table is able to save
$date = JFactory::getDate($this->dateofbirth);
$this->dateofbirth = $date->toSql();
}
// Use parent store method
$result = parent::store($updateNulls);
return $result;
}
Alles anzeigen
Wenn ich hier $result mit var_dump ausgebe, erhalte ich "false". Ich kann aber nicht erkennen, warum dies der Fall ist.
Vielleicht könnt ihr mir weiter helfen?
Edit:
Folgende Informationen sind ggf. noch wichtig:
Wenn Tags eingegeben werden, werden diese auch gespeichert und angezeigt. Der Fehler erscheint trotzdem.
Wenn keine Tags eingegeben werden, das Tags-Feld als leer ist, erscheint der Fehler nicht.