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

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

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

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

295閲覧

laravelのデバッグ

karain

総合スコア98

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/05/19 03:14

編集2018/05/19 09:50

通常laravelではddを使って処理を止めたり、変数の中身を見たりしてデバッグをしていくと思います。

php

1//modelにて 2$this->favorittings()->where('microposts_id', $userId)->exists();

上記ソースddしたところ、どんなデータを取得しているのかを確認することができませんでした。
どのようにすれば中身を見ることができるでしょうか?

#追記

前後のソースを貼り付けます

php

1//View 2@if(Auth::user()->is_favoritting($micropost->id)) 3 {!! Form::open(['url' => route('favorites.destroy', ['id' => $micropost->id]), 'method' => 'delete']) !!} 4 {!! Form::submit('お気に入り解除', ['class' => 'btn btn-warning btn-xs']) !!} 5 {!! Form::close() !!} 6 7 @else 8 {!! Form::open(['url' => route('favorites.store', ['id' => $micropost->id]), 'method' => 'post']) !!} 9 {!! Form::submit('お気に入り', ['class' => 'btn btn-default btn-xs']) !!} 10 {!! Form::close() !!} 11 12 @endif

「$this->favorittings()->where('microposts_id', $userId」を
ddした結果は以下のとおりです

BelongsToMany {#238 ▼ #table: "user_microposts" #foreignPivotKey: "user_id" #relatedPivotKey: "microposts_id" #parentKey: "id" #relatedKey: "id" #relationName: "favorittings" #pivotColumns: array:2 [▶] #pivotWheres: [] #pivotWhereIns: [] #pivotValues: [] +withTimestamps: true #pivotCreatedAt: null #pivotUpdatedAt: null #using: null #accessor: "pivot" #query: Builder {#239 ▶} #parent: User {#215 ▶} #related: User {#237 ▶} }

#追記2
「dd($this->favorittings->where('microposts_id', $userId));」をした結果は以下のとおりです。

Collection {#237 ▼ #items: [] }

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

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

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

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

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

m.ts10806

2018/05/19 03:53

データは正しく取得できているんですよね?「確認することができませんでした」とありますが、何が起きましたか?できればそのdd()した箇所も含めて前後のコードを開示願います。
guest

回答1

0

ベストアンサー

どんなデータを取得しているのかを確認することができませんでした。

どのようにすれば中身を見ることができるでしょうか?

以下で確認できませんか?

PHP

1dd($this->favorittings()->where('microposts_id', $userId));

exists()はその名の通りレコードが存在するかという(boolを返す)APIなのでtrue or falseが見えているのだと思います。

追記

ちゃんとリレーションはれているっぽいので以下(コレクション)で表示してみてください。

PHP

1dd($this->favorittings->where('microposts_id', $userId));

見にくかったらCollectionのAPI(toArray)を使って表示してみてください。

PHP

1dd($this->favorittings->where('microposts_id', $userId)->toArray());

投稿2018/05/19 05:44

編集2018/05/19 09:38
xenbeat

総合スコア4258

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

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

karain

2018/05/19 08:04 編集

>(boolを返す)APIなのでtrue or false なるほどです。勉強になりました。 exitを外したものを質問内容に記載しました。
xenbeat

2018/05/19 09:38

質問編集を受けて回答欄に追記しました
karain

2018/05/19 09:51 編集

ありがとうございます!確認致します! 質問欄(追記2)に結果を追記しました
xenbeat

2018/05/19 10:28 編集

> 質問欄(追記2)に結果を追記しました それは、デバッグした結果、該当するレコードが存在しなかったというだけです。 今回ご質問の > どのようにすれば中身を見ることができるでしょうか? のデバッグ方法については回答欄に記載した通りです。 ”中身を見る”という目的は達成できたはずです。 1.中身を見る方法がわからなかったため質問した ↓ 2.回答を受けて中身を見ることができた ↓ 3.中身を見た結果、レコードが取得できていないという事実が判明した ↓ 4.なぜ? 上記3.4に関しては今回のご質問内容とは別問題かつ、回答するに情報が足りません。 一旦本質問をクローズして、そのなぜ?がご自身で解決できない場合は、別途質問をたててください。
karain

2018/05/19 11:06

そうでしたね、すみません クローズした上で、調査し、わからなければ別途質問させていただきます。 ご丁寧にご回答いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問