2016-06-08 16 views
1

ich eine Befehlssteuerung (ein Importeur) laufen durch den Scheduler haben, die Daten als solche bestehen bleiben sollte:In einem extbase Befehlssteuerung sys_language_uid

foreach ($items as $item){ 
    // store it 
    $entry = $this->objectManager->get('STUBR\Importer\Domain\Model\Item'); 
    $entry->setTitle($item['Title']); 
    $entry->setData(json_encode($item)); 
    // manually set the storage page (defined in scheduler form) 
    $entry->setPid($itemStoragePid); // works 
    // manually set the language (defined in scheduler form) 
    // EDIT 
    // $entry->setSysLanguageUid = -1; // had typo 
    $entry->set_languageUid(-1); // works 
    // END EDIT 
    $this->itemRepository->add($entry); 
} 

Während weder pid noch sys_language_uid im Modell gesetzt, setPid benimmt sich wie erwartet, aber setSysLanguageUid nicht.

Ich bin mir bewusst, dass etwas mit SetSysLanguageUid() in extbase (https://forge.typo3.org/issues/45873) stimmt oder nicht, obwohl ich das Problem nicht vollständig erfassen konnte.

Wie kann ich manuell in die Spalte sys_language_uid speichern?

PS: Ich habe versucht, Extbase Model: setSysLanguageUid not working aber wahrscheinlich habe ich etwas verpasst

Antwort

1

Es ist gelöst, ich hatte einen Tippfehler über

Lösung von @Chi bei https://stackoverflow.com/a/33798615/160968

/** 
* languageUid 
* @var int 
*/ 
protected $languageUid; 

/** 
* @param int $languageUid 
* @return void 
*/ 
public function setLanguageUid($languageUid) { 
    $this->languageUid = $languageUid; 
} 

/** 
* @return int 
*/ 
public function getLanguageUid() { 
    return $this->languageUid; 
} 

Und dann $entry->setLanguageUid(-1);

+0

Ich würde sagen, es ist 'setLanguageUid', mit der Konvention zu bleiben;) – pduersteler

+0

Ah, ich dachte, dass Unterstreichung ha d einige versteckte Funktionen! Also meinst du die Getter/Setter, aber nenne sie konventionell? – Urs

+0

Ja. Und für diejenigen, die denken, dass diese Lösung nicht funktioniert .. es funktioniert für die Einstellung der 'sys_language_uid', aber es kann nicht als solche in der Datenbank wegen der Datamapper persistent. – pduersteler