我想在m routes.php文件中使用Mobile Detect。我在composer.json中添加了包作为require,并将其安装在供应商文件中。我现在该如何使用它?
我尝试了这个答案但没有运气,因为找不到课程:Laravel 4 using vendor classes
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"mobiledetect/mobiledetectlib": "*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
编辑:我尝试使用这个:https://github.com/jenssegers/Laravel-Agent,但别名从来没有说过找不到这个类。
答案 0 :(得分:5)
这个包是PSR-0
命名空间。看看git repo,它似乎是Detection\MobileDetect
,但你想确保这确实是正确的命名空间。您是否尝试将适当的命名空间添加到routes.php
文件中?
use Detection\MobileDetect as MobileDetect;
或者您可以引用正确的内联命名空间。这是一个例子:
$detect = new Detection\MobileDetect\Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
如果这对您不起作用,您可以通过将其添加到composer.json
类地图来逃脱:
"autoload": {
"classmap": ["/vendor/serbanghita/namespaced/"],
}
当然,请填写正确的路径,然后运行composer dump-auto
。
答案 1 :(得分:0)
我也在Laravel的移动侦测中苦苦挣扎,但我找到了解决方案!这是从一开始(包括安装):
在Laravel项目文件夹的终端中:
$ composer require mobiledetect/mobiledetectlib
:
use Mobile_Detect;
...
$detect = new Mobile_Detect;
if ($detect->isMobile()) var_dump('is mobile');
else var_dump('is not mobile');
你准备好了;)