2017-01-23 3 views
1

In meiner eigenen Erweiterung muss ich einige der gelöschten Elemente in die Listenansicht einbeziehen.TYPO3 So zeigen Sie gelöschte Elemente an

Ich habe dies

im domian Modell enthalten
/** 
* @var bool 
*/ 
protected $deleted; 
/** 
* @return int 
*/ 
public function getDeleted() 
{ 
    return $this->deleted; 
} 
/** 
* @param bool $deleted 
*/ 
public function setDeleted($deleted) 
{ 
    $this->deleted = $deleted; 
} 

Und im Repository Ich habe dieses

$query = $this->createQuery(); 
    $query->getQuerySettings()->setIncludeDeleted(true); 
    if($sort==""){$sort = "make";} 

    $query->statement('SELECT tx_origcarinfo_domain_model_car.* 
         FROM tx_origcarinfo_domain_model_car 
         WHERE categories LIKE "%'.$cat.'%" 
         AND ((hidden = 0 AND deleted = 0) OR (deleted = 1       AND tstamp > '.(date("U")-1209600).')) 
         GROUP by car_id 
         ORDER by '.$sort 
         ); 
    } 
    return $query->execute(); 

Aber wenn ich meine Ausgabe ist in jedem Element NULL gelöscht debuggen.

+0

Aussehen ist gut. Haben Sie überprüft, ob das Datum ("U") - 1209600 den richtigen Wert ergibt? Ich habe dies nicht getestet, aber ich denke 'NOW() - 1209600 sollte funktionieren. –

+0

setIncludeDeleted ist der richtige Ansatz. Ich würde weitermachen und die Abfrage debuggen: http://stackoverflow.com/questions/5075296/how-to-debug-a-query-in-extbase – j4k3

+0

Es gibt Elemente zurück, wo deleted = 1, aber in der Ausgabe, Gelöscht wird für jedes Element als NULL angezeigt, trotz des Werts in der Datenbank. Ich habe 1 oder 0 erwartet. –

Antwort

0

Sie haben es richtig gemacht, was Jeppe aber noch eine Sache zu tun, ist, dass Sie eine Datei in Erweiterungsverzeichnis ext_typoscript_setup.txt

config.tx_extbase{ 
    persistence{ 
     classes{ 
      <Namespace>\Domain\Model\<Modelfile> { 
       mapping { 
        tableName = tx_<TableName> 
        columns { 
         deleted.mapOnProperty = deleted 
        } 
       } 
      } 
     } 
    } 
} 

Nach dem Hinzufügen dieser Datei zu deinstallieren und installieren Sie die Erweiterung mit dem Namen erstellen haben.