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

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

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

HighchartはHTML、SVG、VMLを使ったJavascriptの描写用ライブラリです。

PHP

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

Laravel 5

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

Q&A

解決済

1回答

11818閲覧

LaravelでUndefined variable

cofee

総合スコア44

Highcharts

HighchartはHTML、SVG、VMLを使ったJavascriptの描写用ライブラリです。

PHP

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

Laravel 5

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

0グッド

1クリップ

投稿2018/01/12 08:32

編集2018/01/12 09:41

blade上で日付検索をしてConroller内でその日付を$hidukeという変数に入れてwhereに書いています。
そしてそのクエリを$sqlという変数に入れて先ほどと同じbladeに渡しています。
そしてその結果を同じbladeにHighchartsを使用してグラフ化しようとしていてそこで$sqlを使用しています。

ですが、最初にページを開いた際にタイトルのエラーが出てしまいます。

最初にアクセスした時に変数が空なのでエラーが出てしまうのは理解しているのですが
対処法がわかりませんでした。

初回アクセス時に変数を無いことにしたいのですができますでしょうか?

よろしくお願いします。

search.blade.php

1{{ Form::open(['route' => ['time.search'], 'method' => 'post', 'id' => 'searchForm', 'name' => 'searchForm', 'class' => 'form-horizontal']) }} 2 <div class="row"> 3 <div class="col-md-12"> 4 <div class="panel-body"> 5 <div class="form-group"> 6 {{ Form::label('hiduke', '日付:', array('class' => 'col-sm-2 control-label')) }} 7 <div class="col-sm-10"> 8 <div class="input-daterange input-group" id="datepicker"> 9 {{ Form::tel('hiduke', null, ['class' => 'input-sm form-control', 'placeholder' => '入力', 'id' => 'hiduke']) }} 10 </div> 11 </div> 12 </div> 13 <div class="form-group"> 14 <div class="col-sm-offset-2 col-sm-10"> 15 <input type="submit" class="btn btn-default" id='compositeBtn' value="検索"> 16 <input type="button" class="btn btn-default" id='clearBtn' value="クリア"> 17 </div> 18 </div> 19 </div> 20 </div> 21 </div> 22 {{ Form::close() }} 23 24. 25. 26. 27<script> 28. 29. 30. 31 series: [{ //グラフの中身(データの設定) 32 pointWidth: 50, 33 name: "本日の送信件数", //各データの名前 34 data:[<?php echo $sql; ?> 35 ], 36 dataLabels:{ 37 enabled:true, 38 color:'#000000'//各データ(数値) 39 } 40 }] 41. 42. 43. 44</script>

SearchController

1 public function index(){ 2 3 return view('admin::time.search'); 4 } 5 6 /** 7 * 検索 8 */ 9 public function search(){ 10 //入力値取得 11 $hiduke = Request::Input('hiduke'); 12 13 //日付が入力されていない場合エラー 14 if(!$hiduke){ 15 return redirect()->route("time.search")->withErrors('日付を入力してください。')->withInput(); 16 } 17 18 $sql = Read::select(DB::raw('CONVERT(varchar,work_dt,111)')) 19 ->join('arrival','comp.key_no','=','arrival.key_no') 20 ->where((DB::raw('CONVERT(varchar,send_dt,111)')),'like',"$hiduke%") 21 ->groupBy((DB::raw('CONVERT(varchar,work,111)'))) 22 ->count('send_dt'); 23 24 return view('admin::time.search',['sql' => $sql]); 25 }

routes.php

1Route::get('time/search',['as' => 'time.search', 'uses' => 'SearchController@index']); 2Route::post('time/search', ['as' => 'time.search', 'uses' => 'SearchController@search']);

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

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

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

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

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

masaya_ohashi

2018/01/12 08:42

コードを貼ってください。
cofee

2018/01/12 08:53

追加しました!お願い致します。
masaya_ohashi

2018/01/12 09:01

$sqlを使用しているビューはどこですか?その部分がわからない(または削られている?)ので、正確な回答ができません。
cofee

2018/01/12 09:41

すいません。追加しました。
guest

回答1

0

ベストアンサー

初回アクセス時に変数を無いことにしたいのですができますでしょうか?

VIEWのecho $sqlを条件付きで表示するか、コントローラー側で$sql = null$sql = ''をアサインれば良いかと思います。下記のようにBladeテンプレートに条件分岐を書く方法が一番妥当な方法かと思います。

php

1<script> 2//... 3series: [{ 4 pointWidth: 50, 5 name: "本日の送信件数", 6 data:[<?php if(!empty($sql)) echo $sql; ?>], //←ここにPHPで条件分岐 7 dataLabels:{ 8 enabled:true, 9 color:'#000000' 10 } 11}]; 12//...

上記の方法以外に、コントローラー側で対応する方法です。この方法は意味不明な変数をアサインしているので、お勧めしませんが可能ではあります。

php

1public function index() 2{ 3 return view('admin::time.search', ['sql' => null]); 4}

投稿2018/01/13 00:37

Tomak

総合スコア1652

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

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

cofee

2018/01/15 00:56

ありがとうございます! 無事できました。 また何かありましたらよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問