2017-10-07 55 views
0

我正在爲其模板使用Twig(Symfony)語言的平臺上開發網站,並且在一個地方,我需要更改佈局(禁用默認塊並加載根據用戶是在移動設備上還是在桌面上)。我知道如何在PHP中使用它(使用「check_user_agent('mobile')」變量),但這在Twig中不起作用......並且我遇到了對Twig「Mobile Detect Bundle「,但我不知道如何安裝它(與cPanel共享主機)。樹枝 - 確定是否移動代理

Soo ...有沒有辦法檢測Twig中的移動用戶代理,而無需安裝任何東西?

回答

0

如果您已經有基於用戶代理返回true/false的PHP代碼,那麼Write a custom Twig Extension可以非常簡單地運行該代碼,但是來自Twig。

或者,您可以運行在控制器的檢查和傳遞的結果,或在「kernel.controller事件」,甚至運行檢查被稱爲一個控制器動作之前(可能是把它變成一個請求「屬性」 ,它也可以在模板中進行檢查)。

+0

我覺得@snela,@alisterbulman是正確的......你可以用'枝條Extension'解決您的問題。 –

0

在每次請求期間,Symfony默認會在Twig和PHP模板引擎中設置全局模板變量應用程序。 表示當前請求的請求對象:app.request

所以,如果你想知道的用戶代理,你可以在模板中使用app.request.headers
e.g:

{{ app.request.headers.get('User-Agent')}}