Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当用户来自opera mini时发送到另一个控制器_Php_Symfony - Fatal编程技术网

Php 当用户来自opera mini时发送到另一个控制器

Php 当用户来自opera mini时发送到另一个控制器,php,symfony,Php,Symfony,我已经在Symfony2开发了一个网站。我用它来检测用户是来自手机还是PC。我必须为台式机、智能手机和基于Java的手机创建3个不同的版本。我有一个带有以下代码的DefaultController public function indexAction() { $mobileDetector = $this->get('mobile_detect.mobile_detector'); if($mobileDetector->isMobile())

我已经在Symfony2开发了一个网站。我用它来检测用户是来自手机还是PC。我必须为台式机、智能手机和基于Java的手机创建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
    }
当用户来自智能手机时,它将呈现“Android/Default”文件夹中的模板,当用户来自计算机时,将显示“Default”文件夹中的模板

现在我有了另一个控制器“JavaController”,我将在其中为基于Java的手机显示代码


我想做的是检查用户何时来自基于java的手机、Opera mini或ucweb,然后执行JavaController,当用户来自智能手机或桌面时,然后执行DefaultController,以了解手机是否为android,您可以使用:

extends \Mobile_Detect {}

if($this->is('AndroidOS')){
}
Suncat扩展了mobile_detect库,该库具有多种检查功能,如AndroidOS检查IOS等。。。所以你可以用它

编辑: 我现在更了解了,您可以使用此索引并使用以下代码检测它是否是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
    }

或者使用另一个动作来检测移动设备,然后哪个操作系统转发给您需要的任何动作控制器(默认或java)我不理解您的问题:您需要呈现不同的页面还是需要执行不同的动作?此外,您是否需要更改URL?我需要执行不同的操作。我有单独的控制器用于移动和PC。我可以很容易地检查控制器内部的用户是否来自移动设备,但我必须在控制器开始执行之前检查这件事。URL更改并不重要,但如果用户来自移动设备,那么它会很好地重定向到m.sitename.com是的,我可以在控制器内部轻松检查用户是否来自移动设备,但我必须在控制器执行开始之前检查这件事。我需要执行不同的操作。我有单独的移动和PC控制器。