📱
【Laravel】Viewでモバイル判定変数を使う方法を解説!
今回はLaravelのViewで使うことができるOSで処理を切り分けることが
できる方法を紹介します。
以下の3ステップで行うことができます。
1.判定するMiddlewareを作成
2.Kernel.phpにMiddlerareを登録
3.Viewで使用する
ではさっそくやって行きましょう!
Middlewareを作成
app/Http/Middleware配下にMiddlewareを作成します。
今回はGetOs.phpとしました。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\View;
class GetOs
{
public function handle($request, Closure $next)
{
$mobile = false;
$user_agent = $request->header('User-Agent');
if ((strpos($user_agent, 'iPhone') !== false)
|| (strpos($user_agent, 'iPod') !== false)
|| (strpos($user_agent, 'Android') !== false)) {
$mobile = true;
}
View::share('mobile', $mobile);
return $next($request);
}
}
簡単に解説をすると、アクセスしてきたヘッダーのUser-Agentを変数に入れています。
この中にはiPhone、iPod、Androidでアクセスした結果が入っているので
その後に条件分岐で判定をしています。
最後のView::shareはページ全体で使用することができる変数となっており
コントローラ等で記述をしなくても$mobileの変数を使用することができます。
Kernel.phpにMiddlerareを登録
protected $middleware = [
\App\Http\Middleware\GetOs::class,
];
Viewで使用する
@if($mobile)
//モバイルだけで行う処理
@endif
@if(!$mobile)
//モバイル以外だけで行う処理
endif
まとめ
今回はモバイルを判定する関数を作成して
実際にViewで使用するところまで解説をしました。
すぐにできるので、困った際はこちらの記事を参考にして
開発を進めてみてください。
ここまでみてくださりありがとうございました!
youtubeではLaravelでSNS風アプリの動画もあるので
Laravelでアプリを作ってみたい人はぜひみてみてください!
Discussion