2012-03-18 79 views
2

自動響應我有一個鋰應用中設置了這種方式,因此,當PHP鋰(LI3)如何設置與JSON

return($data) 

使用它或者可以在鋰view.html.php使用作爲

echo $data 

,或者請求頭 「接受」 等於 「JSON/javacript」 它會返回類似

{ 
data: { a:'b' } 
} 

自動。

不幸的是在新的應用程序,我作爲一個測試應用程序,流程上做出了不發生(只有HTML總是返回)。

做了一些研究,好像它應該可以自動完成之後,如果我取消

require __DIR__ . '/bootstrap/media.php'; 

內bootstrap.php中,但沒有工作,我仍然有HTML返回。我下載了最新版本的鋰電池(我下載的可能是1到2個月前)

任何人都知道如果使用JSON自動響應需要設置或不是?

回答

2

http://dev.lithify.me/lithium/tickets/view/353

取,然後將其從鋰文檔

採取要啓用自動內容類型協商(即確定基於HTTP的值Accept首部的響應的內容類型),將'negotiating'標誌設置爲true。否則,響應將僅基於請求對象的類型參數(默認爲「HTML」,如果沒有類型出現在請求參數)

http://li3.me/docs/lithium/action/Controller :: $ _渲染

如果您需要更多的幫助如何實施發表評論。

+0

的答案是正確的謝謝!小增加:爲了使它工作,必須把$ this - > _ render ['negotiate'] = true;代碼在控制器的_init函數內部,如果放在控制器的一個動作中它不起作用。代碼的完整版本看起來像\t保護函數_init(){ \t \t //協商選項告訴li3提供正確的內容類型 \t $ this - > _ render ['negotiate'] = true; \t \t父:: _的init(); \t} – Evgenius 2012-03-18 07:39:31

+0

其奇怪。我返回JSON,我做了網絡配置它以這種方式。但我不知道具體的設置,我只試過一次,它的工作。我啓用media.php – Tomen 2012-03-21 14:49:28

+0

@Tomen我認爲它的方式對JSON的請求即將通過。顯式控制器中或內容類型或URL中。 – 2012-03-21 17:24:53

2

也可以到類型設置被$ this->請求 - >接受()調用渲染時()。

return $this->render(array('type' => $this->request->accepts()));