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

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

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

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

Laravel 5

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

Q&A

解決済

2回答

12531閲覧

laravelのbladeテンプレートのincludeで複数の引数を渡せますか

red13

総合スコア79

Laravel

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

Laravel 5

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

0グッド

0クリップ

投稿2016/02/05 11:28

編集2016/02/08 00:36

bladeテンプレート内でincludeファイルに以下のようにすれば値を渡せると思います。
@include('file', ['key' => $value])
この値を複数渡すことは出来ますか?
@include('file', ['key' => $value, 'key2' => $value2])
としてみましたが駄目でした。

~~~~~追加~~~~~
includeしたファイルで{{$key}}と通常の変数の使い方をしたら
見つからないという内容が出ました。

~~~~~追加~~~~~
省略して記載します。
includeする側には普通のHTMLを記載し、中に
@include('file', ['key' => $value, 'key2' => $value2]);
と記載しています。
includeされる側は変数を確認するためだけに簡単なHTMLを記載し、
{{ $key }}
を記載しています。

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

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

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

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

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

yng13

2016/02/05 16:47

コードの書き方はあってそうですけどね。 駄目だったとのことですが、何かエラーメッセージは出ませんでしたか? 'file'テンプレートが見つからない、$valueや$value2が定義されていない、など。
yng13

2016/02/07 04:33

includeされるファイルと、includeするファイルの両方のコードを見せてもらえますか?
guest

回答2

0

間違えて2同じ内容を回投稿してしまいましたw

投稿2016/02/08 16:00

編集2016/02/08 16:01
twin_bird

総合スコア230

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

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

0

ベストアンサー

まず、リファレンスを参照してみます〜
Laravel5.1 bladeテンプレート(リファレンス)

親のビューの全データ変数が取り込み先のビューに継承されますが、追加のデータも配列で渡すことができます。

追加のデータを配列で〜とありますが、言い換えると、変数を追加すること(=データ)ができるということです。
@includeの配列のキー名が変数名とされ、要素名が変数の値となります。

ここまでは確認です!

エラーの原因についてですが、

includeしたファイルで{{$key}}と通常の変数の使い方をしたら

見つからないという内容が出ました。

これはおそらくエラーの通りで、$value、$value2に値が何も入っていないのだと思います。

つまり、@includeしているHTML(view)にて$value、$value2という変数が宣言されていない、もしくはコントローラからそのような変数を渡されていないのではないでしょうか?

試しに@includeしているHTML(◯◯.blade.phpだと思いますが・・)内で、

PHP

1<?php $value = 'hello'; ?> 2<?php $value2 = 'Nice to me too'>

とでも書いてみると、{{ $key }}を確認して見ると、helloと出るかと思います!

投稿2016/02/08 15:59

twin_bird

総合スコア230

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

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

red13

2016/02/09 10:32

実は既に削除して、別の方法で実装しています。 削除前の記載では @for ($i = 0; $i < 3; $i++) @include('file', ['key' => $value, 'index' => $i]); @endfor だったのですが、include先で{{ $index }}を見ると上記のエラーが発生しました。 たぶん大丈夫だとは思っていたのですが。 もしからしたら別の原因なのかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問