質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

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

Q&A

0回答

749閲覧

Laravel 条件分岐できてない

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

0グッド

0クリップ

投稿2020/11/23 02:22

Laravelで作成したフォロー機能でフォロー・フォロー解除ボタンを作っています。
そのボタンを条件分岐させフォローしてるユーザーはフォロー解除ボタン、フォローしてないユーザーはフォローするボタンにそれぞれ変えたいです。

現状フォロー状況にかかわらずフォローボタンが出てきています。

#####UserController

public function search(User $user) { $all_users = $user->getAllUsers(auth()->user()->id); return view('users.search', [ 'all_users' => $all_users ]); } public function follow(User $user) { $follower = auth()->user(); $is_following = $follower->isFollowing($user->id); if(!$is_following) { $follower->follow($user->id); return back(); } } // フォロー解除 public function unfollow(User $user) { $follower = auth()->user(); $is_following = $follower->isFollowing($user->id); if($is_following) { $follower->unfollow($user->id); return redirect(); } }

#####Useモデル

public function followings() { return $this->belongsToMany(User::class, 'follows', 'follower_id', 'follow_id'); } //このユーザーをフォローしてる人の取得 public function followers() { return $this->belongsToMany(User::class, 'follows', 'follow_id', 'follower_id'); } public function follow(Int $user_id) { return $this->followings()->attach($user_id); } // フォロー解除する public function unfollow(Int $user_id) { return $this->followings()->detach($user_id); } public function isFollowing($user_id) { return (boolean) $this->followings()->where('follower_id', $user_id)->exists(); } public function isFollowed($user_id) { return (boolean) $this->followers()->where('follow_id', $user_id)->exists(); }

######view.blade

@foreach ($all_users as $user) <div id="user_list"> <div> <img class="usericon" src="/storage/{{$user->images}}"> <p class="user-name">{{ $user->username }}</p> </div> <div> @if (Auth::id() !=$user->id) @if (auth()->user()->isFollowed($user->id)) <form action="{{ route('unfollow', ['id' => $user->id]) }}" method="POST"> {{ csrf_field() }} {{ method_field('DELETE') }} <button type="submit" class="btn btn-danger">フォロー解除</button> </form> @else <form action="{{ route('follow', ['id' => $user->id]) }}" method="POST"> {{ csrf_field() }} <button type="submit" class="btn btn-primary">フォローする</button> </form> @endif </div> @endif </div> @endforeach <div class="page"> {{ $all_users->links() }} </div

@if文の$userになにが入ってるか確認した際にひとりのユーザーの値しかはいってなかったのですがそれが原因でしょうか?
なにかアドバイスお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/11/23 04:05

一気に質問を複数投稿している様ですが、まずは1つずつ解決してみてはいかがでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問