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

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回答

4640閲覧

Illegal offset type in isset or emptyエラーについて

toll_tree

総合スコア199

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グッド

1クリップ

投稿2019/05/14 08:54

laravelの学習を進めていたのですが、エラーが発生してしまい解決できない為、ご質問させて貰いました。
下記は、ビュー部分のindex.blade.phpです

php

1@extends('layouts.helloapp') 2@section('title','Index') 3@section('menubar') 4 @parent 5 インデックスページ 6@endsection 7@section('content') 8 <p>{{$msg}}</p> 9 <table> 10 <form action="./hello" method="post"> 11 {{ csrf_field() }} 12 <tr> 13 <th>name: </th> 14 <td><input type="text" name="name"></td> 15 </tr> 16 <tr> 17 <th>mail:</th> 18 <td><input type="text" name="mail"></td> 19 </tr> 20 <tr> 21 <th>age:</th> 22 <td><input type="text" name="age"></td> 23 </tr> 24 <tr> 25 <th></th> 26 <td><input type="submit" value="send"></td> 27 </tr> 28 </form> 29 </table> 30 31@endsection 32 33@section('footer') 34copyright 2017 tuyano. 35@endsection

下記は、コントローラーの「HelloController.php」です

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Illuminate\Http\Response; 7 8class HelloController extends Controller{ 9 10 public function index(Request $request) 11 { 12 13 return view('hello.index',['msg'=> 'フォームを入力:']); 14 } 15 16 public function post(Request $request) 17 { 18 $validate_rule = [ 19 'name' => 'required', 20 'mail' => 'email', 21 'age' => 'numeric|between:0,150', 22 ]; 23 24 $this->validate($request,$validate_rule); 25 26 return view('hello.index',['msg'=>'正しく入力されました!']); 27 28 } 29 30 31}

下記は、ルート情報を記載した「web.php」です

php

1<?php 2 3/* 4|-------------------------------------------------------------------------- 5| Web Routes 6|-------------------------------------------------------------------------- 7| 8| Here is where you can register web routes for your application. These 9| routes are loaded by the RouteServiceProvider within a group which 10| contains the "web" middleware group. Now create something great! 11| 12*/ 13 14 15// Route::post('hello','HelloContoroller@post'); 16 17use App\Http\Middleware\HelloMiddleware; 18 19Route::get('hello','HelloController@index'); 20Route::post('hello','HelloController@post'); 21 22// Route::get('hello/other','HelloController@other'); 23

エラーの内容は、下記の通りです。
イメージ説明
エラーの内容で検索したのですが、解決できなかった為、どなたか解決法をご存じでしたら教えて下さい。
よろしくお願いします。

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

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

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

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

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

m.ts10806

2019/05/14 09:05

エラー内容の検索も良いですが、デバッグされては。せっかくLaravelが「ここで落ちてる」と教えてくれてるのですから。
m.ts10806

2019/05/14 09:06

それにエラーの意味がわかればある程度見えるのでは。 イリーガル オフセット タイプ と大事なキーワードが3つも出ています。(そのあとのemptyもキーワードになりえますが)
toll_tree

2019/05/14 09:08

laravelの学習を始めて日が浅いので、画面に出力されていることの内容が良くわからないんですよね。 今回のコードですと、どのようにデバッグすれば良いでしょうか?
m.ts10806

2019/05/14 09:09

PHPを組んでいるということ忘れてませんか?
toll_tree

2019/05/14 09:14

「Illegal offset type in isset or empty」このエラーが何行目におきていることかが分からない状況です
toll_tree

2019/05/14 09:16

なので、どの部分でエラーが出ているかが分からないんですよね
m.ts10806

2019/05/14 09:26

どこまで通ってるかdd()でデバックすれば見えると思います。 いずれにしてもわたってきている値が悪さしてるということですね
toll_tree

2019/05/14 09:33

エラーがどの部分を指しているかが分からないと、厳しいですね。 dd()を色んな所にいれて実行しているのですが、表示される画面は同じですね
m.ts10806

2019/05/14 09:36

スタックトレース的に関係各所の行数が出ていますがそれでも何もヒントになりませんか? あと、dd()をどこに入れたかにもよりますが、dd()はそもそもdie()が実行されるので何か所も入れても実行されるのは一番最初のみです(Laravel内部処理参照) Laravelのデバッグの仕方は調べればたくさんでてきます。dd()はほんの一部です。
退会済みユーザー

退会済みユーザー

2019/05/14 09:39

XDebugを組み込んだリモートデバッグを使えるようになると、この手のトラブルは解決に近づきそうな気がする。 https://qiita.com/castaneai/items/d5fdf577a348012ed8af とかネットの情報をお探しいただきたく。「php xdebug インストール」とか。
toll_tree

2019/05/14 09:43

XDebugというものがあるのですね。リンクありがとうございます。調べてみます。
toll_tree

2019/05/14 09:48

>スタックトレース的に関係各所の行数が出ていますがそれでも何もヒントになりませんか? エラー画面は、「\MiddlewareNameResolver.php」とでていて、ここはいじった記憶はないのですが、もしかしたら、ミドルウエアに関する学習をしていた際に、設定したファイルなどが影響しているということはありますでしょうか?
m.ts10806

2019/05/14 09:51

エラーが出ているのはデータを扱っているミドルウェアの場所ということですよ。触ってない場所にエラーがでない保証はないですし、大抵この手のエラーが自分が作ったコードがフレームワークコア部で処理されるときに起きます。
toll_tree

2019/05/14 10:48

グループミドルウエアに登録していたクラスを削除したら、解決しました
m.ts10806

2019/05/14 10:55

根本解決ではないのは認識しておいてください。それだけPHP自体を使えてないということです。
toll_tree

2019/05/14 10:56

今回の場合PHPではなく、laravelの問題ではないですか?
m.ts10806

2019/05/14 11:00

それはなぜ? というかそういう認識でいる限り、LaravelはおろかPHPも使えるようにはなりません。 PHPが使えているなら今回くらいのエラーは解消可能です。
toll_tree

2019/05/14 11:02 編集

グループミドルウエアに登録していたクラスが問題だったので、そうではないかなと。
m.ts10806

2019/05/14 11:05

そのクラスは何で組まれているか分かっていて「Laravelの問題だ」と仰っているのでしたら、やはりPHPの基礎をきちんとやり直すべきかと。 Laravelは「Web職人のためのフレームワーク」と謳われている通り、既存の他のフレームワークより学習コストが高いものです。 コアのコードを追えない段階のエンジニアではまともに手を出せるものではないでしょう。
toll_tree

2019/05/14 11:09

今回は、laravel学習中に設定したものが原因でしたので、そう思っただけです。
m.ts10806

2019/05/14 11:17

ここではこれで最後にしておきますが、さすがにそろそろPHPに対する理解度の低さはそろそろ自身で認識されたほうが今後のためです。 (私を含めて)見る人が見たらPHP本体の学習から逃げてフレームワークにいくことで逃げたことを正当化しようとしているようにも見えます。 Laravelに関する質問はほぼ全てPHPの理解不足によるもので、そういう指摘も何度も入っていますよね。 自身の現在地を見誤ると初心者の沼からは一生抜け出せません。
guest

回答1

0

自己解決

追加で登録していた、グローバルミドルウエアのクラスを削除したら、エラーが消えました

投稿2019/05/14 10:53

toll_tree

総合スコア199

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

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

m.ts10806

2019/05/14 12:12

根本的解決策でないため、同じような問題を抱えた人が勘違いしないように低評価しておきます。 もしかしたら私以外からもつく可能性はありますが、それはそれできちんと受け止めてもらえたら幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問