2017-07-28 87 views
0

我有一個控制器,它通過一個操作獲取Twitter,Facebook或Google+的配置文件並調用SocialProfile,並保存每個SocialProfile對象。此操作的結尾調用編輯操作,目的是爲最終用戶添加一組類別(不是TYPO3類別),問題是第二個操作無法正常工作。對TYPO3的其他操作調用無法正常工作Extbase

我一直在使用這個指令調用editActioncreateAction

$this->redirect('edit', null, null, array('profileid' => "{$profileid}"),11); 

末現在editAction

public function editAction($socialProfile = NULL) 
    { 
     $arguments = $this->request->getArguments(); 
     var_dump($arguments); 
     $groups = Enum\GruposContenidos::categoryGroupList(); 
     $this->view->assign('categoryGroups', $groups); 
     $this->view->assign('socialProfile', $socialProfile); 
    } 

的錯誤是未來

必需的參數 「socialProfile」未爲Vendor \ Extension \ Controller \ SocialProfileControl設置ler->編輯。例外代碼:1298012500

我在網址中標識了editAction方法運行但未顯示var_dump。我遵循TYPO3(https://wiki.typo3.org/Exception/Flow/1298012500)中的錯誤代碼,並且我嘗試了很多更改,但無效。

調用這種類型的操作的正確方法是什麼,或者可以使用類似redirect的發送參數?

editAction在通過流體從動作列表調用時可以很好地工作,並且可以更改類別值。

它是在TYPO3 7.6和PHP 5.6中開發的。

回答

1

您是否嘗試過$this->redirect('edit', null, null, array('socialProfile' => $socialProfile),11);並傳遞整個SocialProfile對象而不是其ID?一般來說,你需要匹配這兩個名字。

+0

我還有一個問題,當我嘗試通過SocialProfile對象'未能序列化的域對象....這是既不符合身份的實體屬性集,也沒有Value對象,例外代碼:1260881688'問題是我沒有第UID,我會嘗試在repository中使用persistAll,關於這個名字,沒有必要匹配這兩個名字,因爲結構是''key'=> value',有時我更喜歡使用不同的名字,例如分隔Fluid而不是Extbase。 –

+0

也許你可以試試'$ this-> forward()',所以你不需要堅持'$ socialProfile',而你的'editAction()'仍然可以使用它。對於名字,我的意思是'key'應該和你的動作中的參數名稱相匹配,像'array('socialProfile'=> $ SocialProfile)'用'public function editAction($ socialProfile = NULL)',還是我錯了? –

1

你可以在initializeEditAction裏面var_dump。

請嘗試:

$this->redirect('edit', null, null, array('profileid' => $profileid),11); 

你能告訴我從editAction和反安裝的註釋和安裝擴展一次。註釋和方法參數很難被緩存。如果你允許,和你一樣,這個行爲不會引發異常,說明這個參數可能是空的,因此恐怕extbase沒有注意到這個緩存原因。

對不起,我無法評論,我沒有足夠的聲譽:(

+0

我現在刪除了第三個註釋來刪除這個約束,但是我有擴展生成器爲'editAction'生成了註釋。你們兩個給我使用UID的想法,我會嘗試一下。 –