Created
          September 27, 2016 12:30 
        
      - 
      
- 
        Save olek07/1f071a9df0948643d82c6e2c0995a9da to your computer and use it in GitHub Desktop. 
Revisions
- 
        olek07 created this gist Sep 27, 2016 .There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,106 @@ ======= ext_tables.sql ============ CREATE TABLE tx_extkey_domain_model_maintablename ( partner int(11) unsigned DEFAULT '0' ); ======== TCA: your main TCA =========== 'partner' => array( 'exclude' => 1, 'label' => 'Partner', 'config' => array( 'type' => 'select', 'renderType' => 'selectSingle', 'foreign_table' => 'tx_extkey_domain_model_partner', 'foreign_table_where' => 'ORDER BY tx_extkey_domain_model_partner.name' ), ) ====== Model: your main model ========= /** * partner * * @var int */ protected $partner = 0; /** * Returns the partner * * @return int */ public function getPartner() { return $this->partner; } /** * Sets the partner * * @param int * @return void */ public function setPartner($partner) { $this->partner = $partner; } ===== Main Controller ======= /** * partnerRepository * * @var \Gigabonus\Gbpartner\Domain\Repository\PartnerRepository * @inject */ protected $partnerRepository = NULL; /** * action new * * @return void */ public function newAction() { $partners = $this->partnerRepository->findAll(); $this->view->assign('partners', $partners); } ========== view =========== <select name="tx_gbaccount_transactions[newTransaction][partner]"> <f:for each="{partners}" as="partner" iteration="Iteration"> <option value="{partner.uid}">{partner.name}</option> </f:for> </select> ========= better practice For storagePid ========== plugin.tx_mainkey_pluginkey { settings { storagePid = {$plugin.tx_mainkey_pluginkey.persistence.storagePid} } } ========= Controller again ========== /** * * Property Mapping */ protected function initializeCreateAction(){ $propertyMappingConfiguration = $this->arguments['newTransaction']->getPropertyMappingConfiguration(); $propertyMappingConfiguration->allowAllProperties(); $propertyMappingConfiguration->setTypeConverterOption('TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter', \TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED, TRUE); $propertyMappingConfiguration->setTargetTypeForSubProperty('partner', 'int'); } /** * action create * * @param \Gigabonus\Gbpartner\Domain\Model\Transaction $newTransaction * @return void */ public function createAction(\Gigabonus\Gbpartner\Domain\Model\Transaction $newTransaction) { $settings = $this->settings; $pid = (int)$this->settings['storagePid']; $newTransaction->setPid($pid); $this->transactionRepository->add($newTransaction); $this->redirect('list'); }