Contao-Summit 2026

Ankündigung

Collapse
No announcement yet.

FilesModel in Contao 5

Collapse
X
 
  • Filter
  • Zeit
  • Show
Clear All
new posts

    FilesModel in Contao 5

    Hallo liebes Forum,

    ich habe ein Custom Element (Rocksolid) in Contao 4 erstellt und dieses nun in Contao 5 übernommen. Da passiert nichts wildes. Knackpunkt ist hierbei die Auswahl eines Bildes.

    DCA (gekürtzt)
    PHP-Code:
    <?php

    return array(
        
    'label' => array(
            
    'Hintergrund-Wrapper [ANFANG]',
            
    '',
        ),

        ...

        
    'fields' => array(
            
            
    'singleSRC' => array(
                
    'label' => array('Hintergrund Bild', ''),
                
    'exclude'   => true,
                
    'inputType' => 'fileTree',
                
    'eval'      => array(
                    
    'filesOnly'  => true,
                    
    'fieldType'  => 'radio',
                    
    'extensions' => 'jpg,png,gif,webp',
                    
    'tl_class' => 'cbx clr'
                
    ),
                
    'sql'       => "binary(16) NULL"
            
    ),
        
        ...

        ),
    );
    Ausgabe (gekürzt)
    PHP-Code:
    if ( $this->singleSRC )
        
    $file = \FilesModel::findByUuid($this->singleSRC); 
    Error
    request.CRITICAL: Uncaught PHP Exception Symfony\Component\ErrorHandler\Error\ClassNotFound Error: "Attempted to load class "FilesModel" from the global namespace. Did you forget a "use" statement?"

    Der Rest funktioniert problemlos. Nur, wenn ich ein Bild auswähle erscheint der Fehler.

    Hat jemand eine Idee?

    #2
    Die Klasse FilesModel befindet sich (schon immer) im Namespace Contao. Korrekt ist also
    PHP-Code:
    \Contao\FilesModel 
    oder
    PHP-Code:
    use Contao\FilesModel;

    FilesModel 
    statt
    PHP-Code:
    \FilesModel 
    Last edited by Spooky; 22.11.2023, 15:34.
    » sponsor me via GitHub or Revolut

    Comment


      #3
      Zitat von Spooky Beitrag anzeigen
      Die Klasse FilesModel befindet sich (schon immer) im Namespace Contao. Korrekt ist also
      PHP-Code:
      \Contao\FilesModel 
      oder
      PHP-Code:
      use Contao\FilesModel;

      FilesModel 
      statt
      PHP-Code:
      \FilesModel 
      Habe nun use Contao\FilesModel; als erste Anweisung hinzugefügt und es löst keinen Fehler mehr aus, danke!

      Technisch verständlich, aber in Contao 4 musste ich diesen Aufruf nicht starten. Ist das gewollt?
      Last edited by Spooky; 23.11.2023, 09:42.

      Comment


        #4
        Zitat von cwe Beitrag anzeigen
        Technisch verständlich, aber in Contao 4 musste ich diesen Aufruf nicht starten. Ist das gewollt?
        Contao hatte bisher die eigenen Klassen im Contao Namespace auch immer in den Root Namespace gemapped. Das wurde in Contao 4 deprecated und in Contao 5 entfernt.
        » sponsor me via GitHub or Revolut

        Comment

        Working...
        X