2009-08-07 46 views
0

我有ZF的問題,我的代碼看起來不錯,但我不能把參數ID,它返回true,我accesing的網址吧http://site.com/admin/news/newsedit/1我的Zend Framework路線出了什麼問題?

所以我的代碼如下所示:

路線

$ad = self::$frontController->getRouter();  
$ad->addRoute('newsedit', 
    new Zend_Controller_Router_Route(
     'news/newsedit/:id', 
     array(
      'module' => 'admin', 
      'controller' => 'news', 
      'action' => 'newsedit' 
     ) 
    ) 
); 

行動

public function newseditAction() 
{ 
    /* 
     Disable Layout 
    */ 
    $this->_helper->layout->disableLayout(); 
    /* 
     @return : boolen OR string 
    */ 
    $_id = ($this->_getParam('id') !== NULL) ? (int)$this->_getParam('id') : false; 

    if ($_id) { 
     /* 
      @return : array 
     */ 
     $_get = $this->news->select()->where('id = ?', $_id); 
     if (count($_get) > 0) { 
      $this->view->data = $_get; 
     } 
    } 
    Zend_Debug::dump($this->_getParam('id')); 
} 

我做錯了什麼?

+0

@Uffo:在你的代碼你在哪裏添加路由? – hobodave 2009-08-07 22:17:47

+0

在引導,我有更多的路線,他們工作正常 – Uffo 2009-08-07 22:32:33

回答

1

嘗試以下操作:

首先檢查是否路由在您的控制器設置。使用 print_r($this->getFrontController()->getRouter()->getRoutes()); 來確認。

如果沒有,則將路由器設置爲錯誤的實例。

用途:

$ad = Zend_Controller_Front::getInstance()->getRouter(); 

代替。

對阿里納斯

$_get = $this->news->select()->where('id = ?', $_id); 

這並不返回任何行。這是一個Zend_Db_Table_Select對象,而不是Zend_Db_Rowset對象。

你需要做的:

$select = $this->news->select()->where('id = ?', $_id); 
$_get = $this->news->fetchAll($select); 

或更容易:

$_get = $this->news->find($_id) 

問候

+0

嗯,你的解決方案不適合我:(。可能是這個問題: \t \t/* \t \t \t新聞分頁ADMINE SIDE \t */ \t \t $ AD-> addRoute( \t \t \t 'admin_news', \t \t \t新Zend_Controller_Router_Route中(「新聞/:page',array('module'=>'admin','controller'=>'news','action'=>'index')) \t \t); \t \t \t \t/* \t \t \t新聞編輯 \t \t */ \t \t $ AD-> addRoute( \t \t \t 'newsedit', \t \t \t新Zend_Controller_Router_Route中(「新聞/ newsedit /:ID ',array('module'=>'admin','controller'=>'news','action'=>'newsedit')) \t \t); – Uffo 2009-08-07 23:05:59

+0

嗯,你不能看到這樣的代碼,請嘗試在這裏http://pastebin.com/m71b2ce6b – Uffo 2009-08-07 23:06:48

+1

我不明白的是,爲什麼你這樣做首先,只爲了節省你/編號/? 例如。您的網址:http://site.com/admin/news/newsedit/1正常網址:http://site.com/admin/news/newsedit/id/1 嘗試切換您發送的路線的位置。我想如果你定義新聞/:頁面這將是新聞/ newsedit真實。 (newsedit會是頁面) – Rufinus 2009-08-07 23:19:16