質問するログイン新規登録
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

426閲覧

【Laravel】if文で自身のユーザーだけに制限する場合

Java_student

総合スコア87

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/08/30 04:53

編集2023/08/30 07:55

0

0

実現したいこと

投稿(post)のshowページを・ログイン済みユーザー・ログイン済みの自身のユーザー・ログインしていないユーザーの3つに分けて、表示を制限したいのですが、ログイン済みの自身のユーザーのif文の書き方が分かりません。
railsでいうcurrent_userのような制限は出来るのでしょうか?

該当のソースコード

posts/show.blade.php

1@extends('layouts.app') 2 3@section('content') 4 @auth ←ログインユーザーか違うかのif文 5 <div class="profile"> 6 <div class="profile-header"> 7 <p>{{ $post['created_at'] }}</p> 8 </div> 9 <div class="profile-top"> 10 <p><img src="{{ asset('storage/' . $post['image']) }}" width="300"></p> 11 <div class="profile-name"> 12 @if($post->gender == 'オス') 13 <h2>{{ $post['name'] }}くん({{ $post['age'] }}歳)♂</h2></br> 14 @else 15 <h2>{{ $post['name'] }}ちゃん({{ $post['age'] }}歳)♀</h2> 16 @endif 17 </div> 18 <div class="profile-breed"> 19 <h4>種類</h4> 20 <h4>{{ $post['breed'] }}</h4></br> 21 </div> 22 </div> 23 <div class="profile-body"> 24 <h4>備考</h4> 25 <p>{!! nl2br(e($post->explanation)) !!}</p> 26 </div> 27 <div class="profile-btn"> 28 <button type="button" class="btn btn-primary" onClick="history.back()">戻る</button> 29 <form onsubmit="return confirm('本当に削除しますか?')" action="{{ route('post.destroy', $post->id) }}" method="POST"> 30 @csrf 31 @method('delete') 32 <button type="submit" class="btn btn-danger">削除</button> 33 </form> 34 </div> 35 </div> 36 @else 37 <div class="profile"> 38 <div class="profile-header"> 39 <p>{{ $post['created_at'] }}</p> 40 </div> 41 <div class="profile-top"> 42 <p><img src="{{ asset('storage/' . $post['image']) }}" width="300"></p> 43 <div class="profile-name"> 44 @if($post->gender == 'オス') 45 <h2>{{ $post['name'] }}くん({{ $post['age'] }}歳)♂</h2></br> 46 @else 47 <h2>{{ $post['name'] }}ちゃん({{ $post['age'] }}歳)♀</h2> 48 @endif 49 </div> 50 </div> 51 <div class="profile-body"> 52 <h4>備考</h4> 53 <p>{!! nl2br(e($post->explanation)) !!}</p> 54 </div> 55 <div class="profile-btn"> 56 <button type="button" class="btn btn-primary" onClick="history.back()">戻る</button> 57 </div> 58 </div> 59 @endauth 60@endsection

試したこと

調べたのですが、うまく検索に引っ掛からず、有力な情報を検索できませんでした。
@authとは別で、controllerから自身のユーザーを取得して、ifで制限を掛けた方が良いのでしょうか?

補足情報(FW/ツールのバージョンなど)

php: 8.1.21
Laravel: 10.18.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

@authとは別で、controllerから自身のユーザーを取得して、ifで制限を掛けた方が良いのでしょうか?

基本的にはこの方法になると思います。

コントローラー側で「表示しようとしているページがログインしてる自分自身かどうか?」のチェックを行い、そのチェック内容(True or False)の変数をViewに渡して、View側で@ifで表示を切り分けるようにする必要があると思います。

投稿2023/08/30 13:36

AbeTakashi

総合スコア4941

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問