2015-06-26 116 views
0

目前,我的代碼如下所示:選擇第一個對象

public function listAction() { 
    $this->forward('show', NULL, NULL, array('myArgument' => 14)); 
} 

它直接轉發用戶的「show'視圖。它總是轉發到具有UID 14的對象。當用戶刪除該對象時,將發生錯誤。

該代碼應該將用戶轉發到列表中的第一個元素。有沒有像forward('show', NULL, NULL, array('myArgument' => first))

ext_localconf.php中使用'show'作爲默認操作會導致錯誤,因爲沒有定義參數,我猜。

回答

0
public function listAction() { 
    $firstObject = $this->myobjectRepository->findAll()->getFirst(); // just pseudocode 

    $this->forward('show', NULL, NULL, array('myArgument' => $firstObject->getUid())); 
} 

有了這個,你將你的第一個對象的UID發送給其他方法(例如:顯示),因此您需要讓對象回來給你的資料庫的調用(一個findByUid例如)

您還可以使用正確標註你的節目的方法,這樣就會把你的論點作爲對象

/** 
    * action show 
    * 
    * @param \vendor\ext\Domain\Model\ModelName $modelName 
    * 
    * @return void 
    */ 
    public function showAction(\vendor\ext\Domain\Model\ModelName $modelName) { 
     $this->view->assign('modelName', $modelName); 
    } 
0

有沒有這樣的想法,但是有什麼理由不能通過數據庫獲得UID?

public function listAction() { 
    $firstObject = $this->myobjectRepository->findFirstObject(); // just pseudocode 

    $this->forward('show', NULL, NULL, array('myArgument' => $firstObject->getUid())); 
}