20220402のPHPに関する記事は4件です。

月別記事一覧と、投稿数表示機能

目次 1.月別集計 2.月別ページ表示 Laravelを使ったブログサイト作成で、月別記事一覧と投稿数を表示させる機能を作ったのでアウトプット記事書いてみます。 ↓ 最終目標はこんな感じです 1. 月別集計 流れとしては、公開中の記事から指定した年の記事を取得し、月別取得&投稿数取得。 あとは blade側で @foreach を使って月と投稿数を表示させていく感じです! where('is_published', 1) を書かないと非公開記事まで表示されてしまうので注意です! PostController.php public function index(): View { ...省略 $year = date('Y'); $monthPosts = $this->Post->findMonthPostCount($year); return view( 'posts.index', [ 'year' => $year, 'monthPosts' => $monthPosts, ] ); } Post.php public function findMonthPostCount($year): Collection { return Post::where('is_published', 1) ->whereYear('created_at', $year) ->orderBy('created_at') ->get() ->groupBy(function ($row) { return $row->created_at->format('m'); //月別取得 }) ->map(function ($day) { return $day->count(); //投稿数取得 }); } index.blade.php ...省略 <h1 class="month-title">月別記事</h1> <button class="button">{{$year}}</button> <div class="card-month"> @foreach($monthPosts as $month => $count) <li class="li-month"> <a href="{{ route('posts.month', [$year, $month]) }}"> {{$year}}/{{ $month }} ({{$count}}) </a> </li> @endforeach これを表示させてみると、こんな感じです! 投稿がある月だけ表示されるのでとても見やすいと思います! 例えば、追加で5月の記事を投稿してみた場合、 こんな感じで5月の記事が追加されます! そのまま URL になっているのでクリックで月別記事一覧に飛べます! <a href="{{ route('posts.month', [$year, $month]) }}"> {{$year}}/{{ $month }} ({{$count}}) </a> 2. 月別ページ表示 月別ページの表示は、 $year $month を引数で渡してあげて指定した月を取得すればOKです! PostController.php public function month(Request $request): View { $year = $request->year; $month = $request->month; $posts = $this->Post->findByCreated($year, $month); return view( 'posts.month', [ 'year' => $year, 'month' => $month, 'posts' => $posts, ] ); } Post.php public function findByCreated(string $year, string $month): LengthAwarePaginator { $posts = Post::where('is_published', 1) ->whereYear('created_at', $year) ->whereMonth('created_at', $month) ->latest()->paginate(9); $posts->load('user', 'tags', 'images'); return $posts; } 完成です! view 側は、 <div id="blog-top"> {{$year}}年 {{$month}}月 の記事一覧</div> みたいな感じにすると年月に対応した表示になるのでわかりやすいと思います! 月別記事一覧は、投稿数が多いブログだと必要になってくると思うのでぜひ参考にしてみてください〜!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

laravelでyoutubeの料理動画を管理するアプリを作ってみた。

laravelを使ってYoutube上にある料理動画を管理するサービスを作成しました。 Youtubeには様々な料理動画が日々アップされていますが、実際に作ってみてよかったものをストックしたり、 少し自分好みにアレンジした時のメモを残したいと思ったので、当サービスを作ってみました。 セキュリティ面など至らない点が多いとは思いますが、興味があれば使ってみていただけると幸いです。 ⇩作成したサービス 自己紹介 PHPを本格的に学習し始めて3ヶ月目の駆け出しエンジニア。前職はインフラ系で現在Webエンジニアになるため転職活動中です。 使用技術 フロントエンド Javascript Jquery Bootstrap バックエンド PHP(Laravel8) YoutubeAPI Mysql インフラ AWS Git 認証機能はLaravelにデフォルトで備わっているlaravel-authを使用しました。 また、AWSはEC2でサーバーをたて、データベースにRDS、ドメインの割り当てにRoute53(ドメインはお名前ドットコムで取得)、メールの送信にAmazonSESを使用しています。 作成期間 2022年2月下旬~2022年3月下旬の約一ヶ月間。 使い方 会員登録画面 ログイン画面 Home画面 ライブラリ 「レシピ本を見る」⇒ 自分のレシピ本を作成する。フォルダ分けしてレシピを保存するイメージ。 「保存したレシピ」⇒ 自分が保存したレシピをすべて表示する。検索可能。ここからもレシピを追加できる。 レシピを探す 「みんなのレシピ」⇒ 他のユーザーが作成したレシピを探す。 「動画から探す」⇒ 他のユーザーが追加したレシピをYoutubeの動画単位で探す。平均評価順など並び替え可能。動画をクリックすると、動画再生ページに遷移し、レシピの追加が可能になる。 Library画面 作成したレシピ本一覧。「+ Create New Recipeboook」でレシピ本を新規作成できる。 Book画面 作成したレシピ本の内容を表示する。右下の「+」ボタンを押すと、、、 レシピ作成用のモーダルが表示される。ここに追加したいYoutube動画のURLを入力し、「動画のタイトルとサムネイルを取得」をクリックすると、、、 Youtubeからタイトルとサムネイルが取得でき、「追加」ボタンをクリックしてレシピを追加できる。 レシピの追加方法は以上。その他のページも基本的にはこれと似たような使い方になる。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

月別記事一覧と、投稿数表示機能

目次 1.月別集計 2.月別ページ表示 Laravelを使ったブログサイト作成で、月別記事一覧と投稿数を表示させる機能を作ったのでアウトプット記事書いてみます。 ↓ 最終目標はこんな感じです 1. 月別集計 流れとしては、公開中の記事から指定した年の記事を取得し、月別取得&投稿数取得。 あとは blade側で @foreach を使って月と投稿数を表示させていく感じです! where('is_published', 1) を書かないと非公開記事まで表示されてしまうので注意です! PostController.php public function index(): View { ...省略 $year = date('Y'); $monthPosts = $this->Post->findMonthPostCount($year); return view( 'posts.index', [ 'year' => $year, 'monthPosts' => $monthPosts, ] ); } Post.php public function findMonthPostCount($year): Collection { return Post::where('is_published', 1) ->whereYear('created_at', $year) ->orderBy('created_at') ->get() ->groupBy(function ($row) { return $row->created_at->format('m'); //月別取得 }) ->map(function ($day) { return $day->count(); //投稿数取得 }); } index.blade.php ...省略 <h1 class="month-title">月別記事</h1> <button class="button">{{$year}}</button> <div class="card-month"> @foreach($monthPosts as $month => $count) <li class="li-month"> <a href="{{ route('posts.month', [$year, $month]) }}"> {{$year}}/{{ $month }} ({{$count}}) </a> </li> @endforeach これを表示させてみると、こんな感じです! 投稿がある月だけ表示されるのでとても見やすいと思います! 例えば、追加で5月の記事を投稿してみた場合、 こんな感じで5月の記事が追加されます! そのまま URL になっているのでクリックで月別記事一覧に飛べます! <a href="{{ route('posts.month', [$year, $month]) }}"> {{$year}}/{{ $month }} ({{$count}}) </a> 2. 月別ページ表示 月別ページの表示は、 $year $month を引数で渡してあげて指定した月を取得すればOKです! PostController.php public function month(Request $request): View { $year = $request->year; $month = $request->month; $posts = $this->Post->findByCreated($year, $month); return view( 'posts.month', [ 'year' => $year, 'month' => $month, 'posts' => $posts, ] ); } Post.php public function findByCreated(string $year, string $month): LengthAwarePaginator { $posts = Post::where('is_published', 1) ->whereYear('created_at', $year) ->whereMonth('created_at', $month) ->latest()->paginate(9); $posts->load('user', 'tags', 'images'); return $posts; } 完成です! view 側は、 <div id="blog-top"> {{$year}}年 {{$month}}月 の記事一覧</div> みたいな感じにすると年月に対応した表示になるのでわかりやすいと思います! 月別記事一覧は、投稿数が多いブログだと必要になってくると思うのでぜひ参考にしてみてください〜!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

使用しているブラウザを判定

使用用途 ユーザーが使用しているブラウザを判定する 使用方法 ユーザーエージェント判定 $hoge = $_SERVER['HTTP_USER_AGENT']; // ユーザーエージェントを取得 if (strpos($hoge, 'ここに各ブラウザを判定する文言を入力') !== false) { 指定したブラウザだった場合に行いたい処理を入力 } strpos は判定したい文言が見つからない場合に false を返す。 IEサポート終了 2022 年 6 月 16 日(日本時間)をもって、Microsoft 社より Internet Explorer のサポートが終了となることが告知されています。 IEを判定するには MSIE か Tridentという文字が入っているかを確認する。 (古いIEは「Trident」が含まれないので、2つを確かめる) その他のブラウザ 「Chrome」は Chrome が入っているか判定する。 Safari の文字列が含まれる場合もあるため注意。 Chrome が入っていたら「Chrome」。 「Safari」は Safari が入っているか判定する。 Chrome の文字列が含まれる場合は「Chrome」。 「Edge」は Edge が入っているか判定する。 「Edge」は Chrome Safari の文字列も含まれる場合がため判定順に注意。 「Edge」のユーザーエージェントの例 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 「Firefox」は Firefox が入っているか判定する。       この記事は以下の情報を参考にして執筆しました。 https://htaccess.cman.jp/useragent/browser/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む