2009-08-07 5 views
0

나는 내 코드 확인을 보이는, ZF에 문제가있는,하지만 난 그것이 사실 반환 매개 변수 ID를받을 수 없어, 그리고 난 바로 http://site.com/admin/news/newsedit/1젠드 프레임 워크 경로에 어떤 문제가 있습니까?

그래서 내 코드는 다음과 같습니다 URL을 accesing 해요 :

경로

$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

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

인사 : 코드에서 당신이 경로를 추가를

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

또는 쉽게 :

당신은해야 할 것? – hobodave

+0

부트 스트랩에, 더 많은 경로가 있고 그들은 잘 작동합니다. – Uffo

답변

1

는 다음 시도해보십시오 루트는 컨트롤러에서 설정

먼저 확인합니다. 확인하려면 print_r($this->getFrontController()->getRouter()->getRoutes()); 을 사용하십시오.

그렇지 않은 경우 라우터를 잘못된 인스턴스로 설정합니다.

사용 : 대신

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

. (!) 참고에

:

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

이 어떤 행을 반환 나던. 이것은 Zend_Db_Rowset 객체가 아닌 Zend_Db_Table_Select 객체입니다.

+0

흠, 당신의 솔루션은 나를 위해 작동하지 않습니다. (. \t \t/* \t \t \t 뉴스 매김 ADMINE 측 \t */ \t \t $ AD-> addRoute ( \t \t \t 'admin_news', \t \t \t 새로운 Zend_Controller_Router_Route ('소식이 문제가 될 수/: 페이지 ', 배열 ('모듈 '=>'관리자 ','컨트롤러 '=>'뉴스 ','동작 '=>'색인 ')) \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

+0

흠 이것처럼 코드를 볼 수 없다. http://pastebin.com/m71b2ce6b – Uffo

+1

내가 이해하지 못하는 것은 왜이 일을 처음/id /를 저장하는 것인가? 예. 귀하의 URL : http://site.com/admin/news/newsedit/1 일반 URL : http://site.com/admin/news/newsedit/id/1 귀하가 게시 한 경로의 위치를 ​​전환하십시오. . 나는 당신이 news/news를 정의한다면 news/newsedit에 대해 사실 일 것이라고 추측한다. (newsedit는 페이지가 될 것입니다) – Rufinus