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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Laravel

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

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

3861閲覧

laravel フォローボタンの切り替え

yukawa_

総合スコア13

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Laravel

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

PHP

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2021/07/17 00:49

Laravel

フォロ機能実装で
フォロー解除ボタンとフォローボタンの表示の切り替えをif文で行いたいです。
因み今やっていることは、Slistと同じように、$followlistをパラメータとしてviewに送って、
follows tableのfollow_id をさんしょうできるようにしたいです。しかし現状、
search画面に遷移すると以下のエラーが出てきます。
Trying to get property 'follow_id' of non-object (View: /Applications/MAMP/htdocs/dawnSNS/resources/views/users/search.blade.php)
画面表示のControllerでデータベースの値を送っているに認識されない原因がわかりません。

他にいい方法などあれば、何卒ご教授お願いします。

何卒ご教授お願いします。
Controller

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Auth; 7class FollowsController extends Controller 8{ 9 // 10 public function follow(Request $request) 11 { 12 13 $user_id = Auth::user()->id; 14 // dd($request); 15 $follower_id = $request->input('id'); 16 17 \DB::table('follows') 18 ->insert([ 19 'follower_id' => $user_id, 20 'follow_id' => $follower_id 21 ]); 22 return redirect('/search'); 23 } 24 public function remove(Request $request){ 25 26 $user_id = Auth::user()->id; 27 // dd($request); 28 $follower_id = $request->input('id'); 29 30 \DB::table('follows') 31 ->where(['follower_id' => $user_id, 32 'follow_id' => $follower_id 33 ])->delete(); 34 35 return redirect('/search'); 36 } 37 public function followList(){ 38 return view('follows.followList'); 39 } 40 public function followerList(){ 41 return view('follows.followerList'); 42 } 43} 44

View

php

1@extends('layouts.login') 2 3@section('content') 4{{Form::open(['action'=>'UsersController@result'])}} 5{{Form::text('keyword',null,['class' => 'input'])}} 6{{Form::submit('送信',['class' => 'search-button'])}} 7{{Form::close()}} 8 9<div class='container'> 10 <table class='table table-user'> 11 12@foreach ($list as $list) 13 14 <tr> 15 <td><img src="{{ asset('images/dawn.png')}}"alt = "dawn.png"><td> 16 <td>{{ $list->username }}</td> 17 {{-- @if($followlist->follow_id == $list->id) --}} 18 {{Form::open(['action' => 'FollowsController@follow'])}} 19 {{Form::hidden('id',$list->id)}} 20 <td>{{Form::submit('フォローをする',['class'=>'follow-user'])}}</td> 21 {{Form::close()}} 22 {{-- @endif --}} 23 {{-- @if() --}} 24 25 @foreach ($followlist as $followlist) 26 @if($followlist->follow_id == $list->id) 27 28 {{Form::open(['action' => 'FollowsController@remove'])}} 29 {{Form::hidden('id',$list->id)}} 30 <td>{{Form::submit('フォローを解除する',['class'=>'remove-follow'])}}</td> 31 {{Form::close()}} 32 33 @endif 34 @endforeach 35 36 37 38 </tr> 39 @endforeach 40 41 42 43@endsection

フォロー画面を表示しているコントローラー

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Auth; 7 8class UsersController extends Controller 9{ 10 // 11 public function profile(){ 12 $user_name = Auth::user()->username; 13 $email = Auth::user()->email; 14 $password = Auth::user()->password; 15 16 return view('users.profile'); 17 } 18 public function search(Request $request){ 19 20 21 $list = \DB::table('users')->get(); 22 $followlist = \DB::table('follows')->get(); 23 return view('users.search',(['list'=> $list,'followlist'=> $followlist])); 24 25 // $keyword = $request->input('keyword'); 26 } 27 28 public function result(Request $request){ 29 $keyword = $request->input('keyword'); 30 $list = \DB::table('users') 31 ->where('username','LIKE',"%{$keyword}%")->get(); 32 33 34 return view('users.search',['list'=> $list]); 35 } 36 37 } 38 39

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

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

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

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

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

yuki84web

2021/07/18 06:41

followlistの値をdumpして下さい
yukawa_

2021/07/18 09:00

どの場所でdumpするのでしょうか? 大変未熟で申し訳ありません、何卒ご教授お願いします。
yuki84web

2021/07/20 12:24

コントローラ内のviewに渡す直前です
guest

回答1

0

ベストアンサー

そのユーザがXXXをフォローしているか否かのアクセサを定義して、その真偽値をもとにViewで差し替えてあげれば良いでしょう。

投稿2021/07/23 14:31

kai0310

総合スコア2070

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問