当用户来自 opera mini 时发送到另一个控制器
Send to another controller when user is from opera mini
我用 Symfony2 开发了一个网站。我正在使用 Suncat MobileDetectBundle 来检测用户是来自移动设备还是 PC。我必须为桌面、smartphones 和基于 Java 的 phones 创建 3 个单独的版本。我有一个带有以下代码的 DefaultController
public function indexAction()
{
$mobileDetector = $this->get('mobile_detect.mobile_detector');
if($mobileDetector->isMobile())
$render='AcmeUitBundle:Android:Default/';
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
当用户来自 smartphone 时,它将呈现存在于 'Android/Default' 文件夹中的模板,当他来自计算机时,显示来自 'Default' 文件夹的模板。
现在我有另一个控制器,'JavaController',我将在其中显示基于 Java 的代码 phone。
我想做的是检查用户何时来自 java 基于 phone、Opera mini 或 ucweb,然后执行 JavaController 以及何时用户来自smartphone 或者 Desktop 然后执行 DefaultController
要知道 phone 是否为 android,您可以使用:
extends \Mobile_Detect {}
if($this->is('AndroidOS')){
}
Suncat 扩展了 mobile_detect 库,它有很多类型的检查,如 AndroidOS 检查 IOS 等...所以你可以使用它。
编辑:
我现在明白了,您可以使用此 indexAction 并使用以下代码检测它是否 android:
if($mobileDetector->isMobile()){
if(mobileDetector->is('AndroidOS')){
return $this->forward('YourBundle:Java:index'); //this is your bundle name your controller name then your action name.
}
$render='AcmeUitBundle:Android:Default/';
}
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
或使用另一个动作来检测移动设备,然后 OS 转发到您需要的任何动作控制器,默认控制器或 java 控制器
我用 Symfony2 开发了一个网站。我正在使用 Suncat MobileDetectBundle 来检测用户是来自移动设备还是 PC。我必须为桌面、smartphones 和基于 Java 的 phones 创建 3 个单独的版本。我有一个带有以下代码的 DefaultController
public function indexAction()
{
$mobileDetector = $this->get('mobile_detect.mobile_detector');
if($mobileDetector->isMobile())
$render='AcmeUitBundle:Android:Default/';
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
当用户来自 smartphone 时,它将呈现存在于 'Android/Default' 文件夹中的模板,当他来自计算机时,显示来自 'Default' 文件夹的模板。
现在我有另一个控制器,'JavaController',我将在其中显示基于 Java 的代码 phone。
我想做的是检查用户何时来自 java 基于 phone、Opera mini 或 ucweb,然后执行 JavaController 以及何时用户来自smartphone 或者 Desktop 然后执行 DefaultController
要知道 phone 是否为 android,您可以使用:
extends \Mobile_Detect {}
if($this->is('AndroidOS')){
}
Suncat 扩展了 mobile_detect 库,它有很多类型的检查,如 AndroidOS 检查 IOS 等...所以你可以使用它。
编辑:
我现在明白了,您可以使用此 indexAction 并使用以下代码检测它是否 android:
if($mobileDetector->isMobile()){
if(mobileDetector->is('AndroidOS')){
return $this->forward('YourBundle:Java:index'); //this is your bundle name your controller name then your action name.
}
$render='AcmeUitBundle:Android:Default/';
}
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
或使用另一个动作来检测移动设备,然后 OS 转发到您需要的任何动作控制器,默认控制器或 java 控制器