2016-08-24 51 views
0

我正在嘗試在Phalcon上創建Rest Api。主要問題是 - 如何在不同的控制器中使用BaseController(這將非常方便地獲取用於登錄用戶的翻譯或信息,或檢查用戶是否登錄在基本控制器中)。Phalcon Rest Api

當我做這樣的事情

$posts = new Collection(); 
$posts->setHandler(new PostController()); 
$posts->setPrefix('/posts'); 
$posts->get('/show/{id}', 'show'); 
$app->mount($posts); 

$index = new Collection(); 
$index->setHandler(new IndexController()); 
$index->setPrefix('/index'); 
$index->post('/someurl'); 
$index->mount($index); 

PostController中和的IndexController延長BaseController。但是當我得到url(例如)「/ index/someurl」時,我看到BaseController運行了兩次。

有沒有一種方法來解析setHandler之前的URL,並使集合依賴於url和參數?或者,也許還有另一種組織代碼的方式。謝謝。

+1

延伸,'$首頁 - >安裝($指數); 「一個錯字?不應該是'$ app-> mount($ index);'? – Timothy

回答

0

如何:

$posts->setHandler('PostController', true); $index->setHandler('IndexController', true);

+0

謝謝,但我找到另一種方式。我不知道它是否有效,但它是有效的,並且沒有數百行路由 $ app-> get('/ {from:[a-zA-Z \ - ] +}/{act:[ (控制器); $控制器=新的$控制器名稱; $控制器 - > $ act();}},函數($ from,$ act){控制器名稱= $。 }); –

+0

這是明確無效的方式:D – Juri