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

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

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

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

Q&A

1回答

324閲覧

laraval idから内容を取得

KeisukeNebashi

総合スコア18

Laravel

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

0グッド

0クリップ

投稿2018/12/19 05:55

編集2018/12/20 04:23

*前提、実現したいこと
現在twitterのクローンアプリを作成していて、
userテーブル
・id
・name
tweetテーブル
・id
・user_id
・content
の2つのテーブルがあります。

・userは複数のツイートをすることができる
・userは他人のツイートに対して、いいねすることが出来る。
・tweetは複数のuserに対していいねされる。

実現したいことはuserのtweetを全て表示させることです。

*つまづいていること
viewで該当する箇所が何も表示されません。

*該当するソースコード

controller.php

php

1public function own(Request $request) 2 { 3 $tweets = Tweet::where('user_id', 'Auth::user()->id')->get(); 4 5 return view('admin.tweet.mypage', ['tweets' => $tweets]); 6 }

blade.php

php

1<tr> 2 <th>tweet一覧</th> 3 @if( $tweets != NULL) 4 @foreach( $tweets as $tweet) 5 <td><a href={{ action('Admin\TweetController@detail', ['id' => $tweet->id]) }}>{{ $tweet->content }}</a></td> 6 @endforeach 7 @else 8 <h5>ツイートはありません</h5> 9 @endif 10 </tr>

user.php

php

1public function tweets() 2 { 3 return $this->belongsToMany('App\Tweet'); 4 }

tweet.php

php

1public function users() 2 { 3 return $this->belongsToMany('App\User'); 4 }

dd($tweets)をしたところ

php

1Collection {#227 ▼ 2 #items: [] 3}

と表示されました。

以上です。
よろしくお願いします。

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

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

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

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

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

m.ts10806

2018/12/19 06:00

タイトル誤字なので修正いただければと。 >larval また、dd()の表示結果のところもコードブロックにしてください。
KeisukeNebashi

2018/12/20 04:22

失礼いたしました。 修正します。
guest

回答1

0

$tweets = Tweet::where('user_id', 'Auth::user()->id')->get();
この行は
$tweets = Tweet::where('user_id', Auth::user()->id)->get();
もしくは
$tweets = Auth::user()->tweets;
これで出来るのではないかと。

投稿2018/12/19 06:23

sakura_hana

総合スコア11427

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

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

KeisukeNebashi

2018/12/20 04:24

コメントありがとうございます。 試してみたところ、Trying to get property of non-objectとエラーが表示されました。
sakura_hana

2018/12/20 04:44

そもそもAuthが動いてない気がします。 ファイル先頭に「use Illuminate\Support\Facades\Auth;」が記載されているか確認してください。
keisuke713

2018/12/21 04:07

記載されています。
sakura_hana

2018/12/21 04:21

(質問主さんと別の方っぽいですが大丈夫ですか?) 他にあり得るとしたら「ログインしていない」「該当ユーザーのツイート(=user_idが該当ユーザーのIDであるツイート)が無い」とかですかね。まず無いとは思ったのですが。 あと検証として、 $tweets = Tweet::where('user_id', 1)->get(); (数字は絶対に存在するツイートのuser_id)としてみて、以降の処理が正常に出来るか確認してください。
KeisukeNebashi

2018/12/21 05:38

確認してみます! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問