📱

【Laravel】Viewでモバイル判定変数を使う方法を解説!

2022/08/25に公開

今回は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でアプリを作ってみたい人はぜひみてみてください!

https://youtu.be/--MGHHzk3CY

Discussion

ログインするとコメントできます