Model::findAll #4346

Closed
dominikzogg opened this Issue May 20, 2012 · 9 comments

Comments

Projects
None yet
3 participants
Contributor

dominikzogg commented May 20, 2012

Hallo Leo

Beim Versuch die directentries Extension möglichst sauber (nach den neuen Vorgaben von Contao3) zu bauen habe ich folgendes versucht:

$objCalendar = $this->Database->query("SELECT id,title FROM tl_calendar ORDER BY title");
$objCalendar = \CalendarModel::findAll(array('order'=> 'tl_calendar.title'));

Das obere geht einwandfrei, das untere gibt null zurück. Siehst du da einen Fehler an meiner Implementierung, oder ist da noch was faul?

Gruss Dominik

Hast Du ein Model "CalendarModel.php" im Modul-Unterordner "models" erstellt und dieses von "\Contao\Model" erben lassen?

Beispiel:

/**
 * Run in a custom namespace, so the class can be replaced
 */
namespace WiseApe\WATB;


/**
 * Reads and writes company data
 * 
 * @author    Ruben Rögels
 * @copyright wiseape GmbH 2012
 */
class WatbCompanyModel extends \Contao\Model
{
    protected static $strTable = 'tl_watb_company';    
}
Contributor

dominikzogg commented May 20, 2012

Hallo kryptychon

Nein habe ich nicht, dachte ich kann das von Contao selbst verwenden.

Gruss Dominik

Ich habe das auf der Konferenz auch so verstanden, dass die Models automatisch zur Laufzeit generiert werden, aber dem scheint nicht so zu sein ;-)

Contributor

dominikzogg commented May 20, 2012

Hallo kryptychon

Ich dachte auch, das man einen anderen Namespace definieren kann.
Alles ausser Contao wird in meinen Tests nicht unterstützt.

https://github.com/dominikzogg/ContaoDirectentries/tree/contao3/TL_ROOT/system/modules/directentries

Gruss Dominik

Hallo Dominik,

was meinst Du mit

Alles ausser Contao wird in meinen Tests nicht unterstützt.

Wenn Du vererbst, musst Du im richtigen namespace vererben, der "root"-Namespace ist "".

Grüße,
Ruben

Contributor

dominikzogg commented May 20, 2012

Hallo kryptychon

namespace Contao;
class DirectEntryCalendar extends \Backend

geht, aber

namespace DirectEntries;
class DirectEntryCalendar extends \Backend

inkl. Anpassung der autoload.php geht nicht

Was nach dem class_alias des autoloaders gehen müsste, aber er findet ja
die Klasse nicht von mir, nicht jene die ich erweitere...

Gruss Dominik

müsste auch so sein:

class DirectEntryCalendar extends \Contao\Backend
{
}

und: Hast Du Deine Klasse registriert?

Grüße,
Ruben

Contributor

dominikzogg commented May 20, 2012

Hallo Ruben

Selbst dann gibt es keinen Grund weshalb er meine Klasse nicht findet.

Gruss Dominik

Owner

leofeyer commented May 21, 2012

$objCalendar = $this->Database->query("SELECT id,title FROM tl_calendar ORDER BY title");
$objCalendar = \CalendarModel::findAll(array('order'=> 'tl_calendar.title'));

Das müsste so auch klappen. Was für ein Query gibt die Debug-Konsole aus?

leofeyer closed this Jul 24, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment