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

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

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

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

Laravel 5

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

Q&A

解決済

1回答

1389閲覧

Controllerから受け渡した絶対パスをviewでiframeのsrcに使用したい

gobindar

総合スコア51

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2019/01/10 10:36

いつもお世話になっております。
当方macでLaravel5.5を使用し、
アップロードしたファイルをプレビューするサイトを作っています。
下記の通り、Controllerからファイルの絶対パスをviewに渡し、
iframeのsrcで使用しようとしているのですが、
「Undefined variable: pdf_file_path 」のエラーとなってしまいます。
自分でしらべたところでは
「コントローラから、$idと$filesがviewに渡されている前提で、{!! !!}で囲まれた部分はPHPの処理になるので、文字列中の変数展開などを使えば普通にできるかと思います。」
という回答が
https://teratail.com/questions/110591
にありましたが、

<iframe src="{!! $pdf_file_path!!}"> としても同じくエラーになります。 初心者の質問で恐縮ですが、 何卒宜しくお願いします。

Controller

php

1 public function upload_material_confirm(Request $request) 2 { 3~~~~~ 4//$pdf_file_pathにはファイルの絶対パスが入っています 5 $data = $request->all(); 6 $data = array_merge($data,array('pdf_file_path'=>$pdf_file_path)); 7 8 return view('material.upload_material_confirm',compact('data','user'));

upload_material_confirm

php

1 <div id="Iframe-Master-CC-and-Rs" class="set-margin set-padding set-border set-box-shadow center-block-horiz"> 2 <div class="responsive-wrapper" style="-webkit-overflow-scrolling: touch; overflow: auto;"> 3 4 <iframe src="{{$pdf_file_path}}"> 5 <p style="font-size: 110%;"><em><strong>ERROR: </strong> 6 An &#105;frame should be displayed here but your browser version does not support &#105;frames. </em>Please update your browser to its most recent version and try again.</p> 7 </iframe> 8 9 </div> 10 </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1return view('material.upload_material_confirm', compact('data','user'));

compactの使い方は理解されてますか?
この記述ではviewに渡しているデータは

php

1array( 2 'data' => array( 3 'pdf_file_path' => $pdf_file_path, 4 ..., 5 ), 6 'user' => ..., 7)

という形になるため、{{ $pdf_file_path }}ではundefinedになります。

php

1return view('material.upload_material_confirm', $data);

と、$dataを渡すだけで済むようにしてみてはどうでしょうか。

また、個人的にはcompact()は可読性を下げてしまうので、必要のない限り(そもそも必要になる場面が思い浮かびませんが)使うべきではないと思います。

投稿2019/01/11 00:50

nedisoh

総合スコア74

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

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

gobindar

2019/01/11 04:00

有難うございます、 ご回答を参考に一旦 return view('material.upload_material_confirm',compact('data','user','pdf_file_path')) としてできることを確認できたのですが、 「compact」を使用しないというのは、 'data'に'user'配列もつっこんでしまって、 view側では配列のなかの変数を呼び出す形にすればよいでしょうか? (view側で配列を取り出す記述があると逆にわかりにくくなるかと思い、 これまで複数の変数を送っていました) 尚compactは、下記の文章を参考に、変数が複数であればcompactを使えば よいと思い、使用しておりました。 https://qiita.com/ryo2132/items/63ced19601b3fa30e6de お忙しいところ恐縮なのですが、ご返答頂けますと幸甚です。 宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問