Laravel(ver.6)を使用してCMSの開発を行っています
MAMPで開発環境を準備してローカルで作業を行っていましたが
先ほどさくらインターネットのサーバーにファイルを一式アップして確認したところ
ローカルでは問題なく動いていたところが
さくらのサーバー上ではエラーとして判定され動かなくなってしまいました
お恥ずかしながら無知のため原因が全くわかっていません、
何か少しでも解決の糸口となるアドバイスをいただけますと幸いです。
class OrdersController extends Controller { /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $name = ['オーダー','ORDER','admin.order'] ; $level = Level::all(); // 登録されているユーザーレベル(1~5)設定を取得 $check = Level::select('level')->get(); foreach( $check as $check ){ $act[] = $check->level ; } return view( 'page.order.create' , [ 'name' => $name , 'act' => $act , 'level'=> $level , ]); }
上記コードの
'act' => $act ,
の部分で
Undefined variable:act
というエラーになります
そして不思議なことに
ノートPC(macbook pro)では上記のエラー画面が出るのに
iMacでは同じことをしてもエラー画面が表示されずブラウザが真っ白になります
何かお気づきのことがあれば
ぜひ教えてください
エラーログを確認したでしょうか? エラーが出ているファイル名や行数が表示されているはずなので、ますはそこを確認すべきかと思います。それでも分からない場合はエラーログの内容を提示するなどした方が良いでしょう。正直なところ、与えられたこの情報だけで正確に答えるのはエスパーでもない限り無理かと。
といいつつエスパー的に答えてみますが、$actがforeach内でしか定義されてないので、foreachのループに入らない限り$actは未定義でUndefinedと表示されるのだと思います。つまり$checkの値があるかないかで挙動が変わるのだと思いますよ。なぜそうなるのかはこのソースコードだけではまったく見当は付きません。
エラー箇所は上記記載の部分で、「Undefined variable:act」という内容でした。
情報が足りずご迷惑をおかけしました。
別の方のアドバイスで一応解決はしたのですが
全く同じ内容のファイルがローカルとレンタルサーバー上でエラーかどうかの判定が異なる理由や原因が
あまりよくわかっていません、おそらくそれを知ることでもう少しLaravelやPHPを理解できると思います。
ご丁寧にありがとうございました。
回答1件
あなたの回答
tips
プレビュー