UserAgentの取得には、jenssegers/agentを使います。
github: https://github.com/jenssegers/agent
$ composer require jenssegers/agent
config/app.php
'providers' => [ // 省略 Jenssegers\Agent\AgentServiceProvider::class, ], 'aliases' => [ //省略 'Agent' => Jenssegers\Agent\Facades\Agent::class, ],
AdminController.php
use Jenssegers\Agent\Agent; public function useragent(){ if(\Agent::isMobile()){ return view('admin.sp'); } return view('admin.pc'); }
なるほど、相当簡単に実装できる。
これをunitテストでやりたい。
$ php artisan make:test UserRegisterTest
public function testExample() { $response = $this->get('/'); $response->dumpHeaders(); }
$ vendor/bin/phpunit tests/Feature/UserAgentTest.php
public function testExample() { $response = $this->get('/admin/useragent'); // $response->assertStatus(200); $this->assertSame(2, $response); }
$ vendor/bin/phpunit tests/Feature/UserAgentTest.php
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
なんでだ? $this->getだとheader情報しか返ってこないのか。
UnitTestはもうちょっとやりこまないとダメやな。