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

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

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

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

PHP

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

Laravel 5

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

Q&A

解決済

1回答

6180閲覧

laravel blade で多次元連想配列を表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

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

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2019/03/06 14:54

編集2019/03/06 16:18

前提・実現したいこと

以下のような多次元連想配列をビューで表示したいです

エラーメッセージ

Undefined variable: user (View: /Users/appleiii/Programming/php/fake/src/resources/views/home.blade.php)

該当のソースコード

php

1 public function index() 2 { 3 $all_posts = []; 4 $posts = Post::latest()->get(); 5 6 foreach($posts as $post){ 7 $photos = $post->photos; 8 $u_id = $post->u_id; 9 $user = User::find($u_id); 10 11 $photo_posts = array( 12 'user' => $user, 13 'post' => $post, 14 'photos' => $photos, 15 ); 16 17 $all_posts[] = $photo_posts; 18 } 19 return view('home')->with('all_posts',$all_posts); 20 }

php

1 @foreach($all_posts as $photo_post) 2 <div class="card"> 3 {{ $photo_post->$user->id }} 4 </div> 5 @endforeach

Post.php

php

1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Post extends Model 8{ 9 10 protected $fillable = [ 11 'u_id', 'comment', 12 ]; 13 14 public function user() 15 { 16 return $this->belongsTo('App\User'); 17 } 18 19 public function photos() 20 { 21 return $this->hasMany('App\Photo'); 22 } 23} 24

試したこと

様々な書き方を試してみましたが、表示できませんでした

php

1{{ $photo_post->user->id }} 2{{ $user->id}}

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

イメージ説明
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

Postモデルに、user() photos()が定義されている前提で

php

1 public function index() 2 { 3 $posts = Post::with('photos', 'user')->get(); 4 return view('home')->with('posts', $posts); 5 }

php

1 @foreach($posts as $post) 2 <div class="card"> 3 {{ $post->user->id }} 4 </div> 5 @endforeach

php

1 2 public function user() 3 { 4 return $this->belongsTo('App\User')->withDefault(); 5 }

投稿2019/03/06 15:25

編集2019/03/06 16:14
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/03/06 16:04 編集

おそらくuser()が動かないため $posts内のuserがnullになっていたのですが 動かない理由わかりますか? 下の画像はLaravel Entity Relation Diagram Generatorによって作成されたのでDB自体のリレーションはできているみたいなのですが Post.phpを追記したのでご確認いただけると幸いです
退会済みユーザー

退会済みユーザー

2019/03/06 16:12

実データみなきゃわからん
退会済みユーザー

退会済みユーザー

2019/03/06 16:18

わかりました ありがとうございます
退会済みユーザー

退会済みユーザー

2019/03/06 16:22

何がわかったのか、読み取れませんが…
退会済みユーザー

退会済みユーザー

2019/03/06 16:34

こちらの件に関してはごちゃごちゃしてしまい 詳しく載せられそうにないので 別に質問することにしました 最初の質問を解決してくださりありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問