[Frage] Gelöschtes (deleted=1) Object wieder herstellen

  • metaxos metaxos
    T3PO
    0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2014, 18:28

    Ich möchte ein gelöschtes (mit remove > deleted=1) Object wiederherstellen. Das setDeleted(0) scheint jedoch keine Wirkung zu haben, in der selben Methode klappt das setName('bla') ohne Problem. Warum?

    Da das wiederherstellen über das Objekt fehlschlägt (Exception while property mapping at property path "":Object with identity "1" not found.) habe ich den Weg gewählt die UID zu übergeben.

    Controller:
    /**
    * action delete
    *
    * @param \EXAPOINT\Exacallmanagement\Domain\Model\Calls $calls
    * @return void
    */
    public function deleteAction(\EXAPOINT\Exacallmanagement\Domain\Model\Calls $calls) {
    $this->callsRepository->remove($calls);
    $this->flashMessageContainer->add('Call gelöscht.');
    $this->redirect('list');
    }

    /**
    * action restore
    *
    * @param integer $callUid
    * @return void
    */
    public function restoreAction($callUid) {
    $calls = $this->callsRepository->findByUid($callUid);
    $calls->setDeleted(0);
    $calls->setName('test');
    $this->callsRepository->update($calls);
    $this->redirect('list');
    }

    Model:
    /**
    * @param \integer $deleted
    * @return void
    */
    public function setDeleted($deleted) {
    $this->deleted = $deleted;
    }

    Was wären für diese triviale Anforderung eure Tipps? Danke.

    Tags: Extbase

  • 1
  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    13. 02. 2014, 08:58

    Soweit ich weiß muss das Feld dann auch im TCA dieses Models stehen. Füge ggf. das Feld Deleted als Checkbox im Backend hinzu.

  • metaxos metaxos
    T3PO
    0 x
    19 Beiträge
    0 Hilfreiche Beiträge
    13. 02. 2014, 10:21

    Danke. Ich habe nun folgendes im TCA stehen:

    1. 'hidden' => array(
    2. 'exclude' => 1,
    3. 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden',
    4. 'config' => array(
    5. 'type' => 'check',
    6. ),
    7. ),
    8. 'deleted' => array(
    9. 'exclude' => 1,
    10. 'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.deleted',
    11. 'config' => array(
    12. 'type' => 'check',
    13. ),
    14. ),

    Im Backend (Liste) sehe ich nun eine Checkbox "hidden" jedoch keine "deleted", warum?

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    13. 02. 2014, 10:59

    Weiß gar nicht ob es unbedingt angezeigt werden muss, wichtig ist glaube ich nur, dass Du es im TCA stehen hast. Ansonsten musst Du das Feld deleted noch im Array showRecordFieldList und types hinzufügen.

    1. 'interface' => array(
    2. 'showRecordFieldList' => 'HIER',
    3. ),
    4. 'types' => array(
    5. '1' => array('showitem' => 'UND HIER'),
    6. ),

  • 1