Hallo zusammen,
ich habe die letzten 2 Jahre damit verbracht, das Backend meiner kleinen Komponente auszubauen. Nun sitze ich am Frontend und stelle fest: Hier läuft einiges doch etwas anders als bisher.
Scheinbar gibt es für die Einzelansicht von Elementen JModelItem im Frontend nicht? Zumindest parent::getItem() scheint nicht zu funktionieren?
Wenn ich hier auf JModelList zurück greife, dann muss ich mir natürlich irgendwie die Parameter "holen", die ich benötige, um wirklich nur den passenden Datensatz anzuzeigen.
Bisher mache ich das wie folgt:
protected function populateState($ordering = null, $direction = null) { $id = JRequest::getInt('id'); $this->setState('id', $id); }
soweit, so gut.
Nun nutze ich getListQuery:
protected function getListQuery($pk = null)
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select(
$this->getState(
'list.select',
'a.id, a.title, ' .
'a.state, a.catid,' .
'a.content, a.startdate, a.enddate'
) );
$query->from($db->quoteName('#__bestia_states').' AS a');
$query->where('(a.state IN (0, 1))');
if ($id = $this->getState('id'))
{
$query->where('a.id = '.(int) $id);
}
return $query;
}
Alles anzeigen
Okay, auch das funktioniert, aaaaaaaaber:
Wenn nun
&id=
angegeben wird, erhalte ich natürlich fiese MySQL-Fehler:
Zitat0 SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty
Gibt es da eine elegantere Methode?