-
Problem mit PageModel
Hallo zusammen,
ich möchte die URL einer Seite bekommen und verwendet dafür find() Methoden von PageModel, bekomme aber kein Page Object zurück, sondern Contao\Model\Collection.
PHP-Code:
use Contao\PageModel;
class xxx extends ModuleEventlist
{
protected function compile()
{
...
$objProfil = PageModel::findPublishedByIdOrAlias($string);
...
$link = $objProfil->getFrontendUrl();
...
}
}
ergibt:
UndefinedMethodError
HTTP 500 Internal Server Error
Attempted to call an undefined method named "getFrontendUrl" of class "Contao\Model\Collection".
Habt ihr Tipps?? Danke!
-
$objProfil->current()->getFrontendUrl();
-
Super - danke für die Schnelle Hilfe!! War schon am Verzweifeln..
hatte u.a. das gefunden:
PHP-Code:
$this->Template->referer = PageModel::findById($this->overviewPage)->getFrontendUrl();
in der ModuleEventreader.php (Core) - da funzt das demnach ohne current?!
EDIT: oder ist findByIdOrAlias nicht eindeutig (wie z.B. findOneBy und demnach auch findById)?
-
findPublishedByIdOrAliasgibt dir eine Collection, weil es mehrere Seiten mit dem selben Alias geben kann. findById gibt dir ein einzelnes Model, weil das eindeutig ist. findOneBy gibt dir immer ein Model.
-
ok, verstanden & nicht auf dem Schirm gehabt (Alias mehrfach mögl.).