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

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

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

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

PHP

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

Q&A

2回答

12813閲覧

Laravel Undefined variableエラーについて、

hatevexing

総合スコア1

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/12/10 02:46

編集2020/12/10 02:50

現在、LaravelでECサイトの作成をしています。

タイトルどり、

Undefined variable: items (View: /home/vagrant/code/resources/views/admin/items/index.blade.php)

のエラーがでております。

Controllerでもitemsに定義しているはずなのですが、このようにエラーが出ています。

seedで作成したデータを確認のため、viewで出力を試みたところ、エラーが出ました。

tinker、Mysqlともにデータの所在は確認しております。

php

1 @if (isset($items)) 2 <p>$items</p> 3 @else 4 <p>Hello</p> 5 @endif

上記で試したところ、viewにはHelloが出力されたため、itemがnullということでしょうか。


下記に関係するファイルを提示します。

web.php(一部抜粋)

php

1Route::prefix('admin/items')->name('admin.items.')->group(function() { 2  Route::get('index', 'ItemsController@index')->name('index'); 3}); 4

admin/items/index.blade.php

php

1@extends('layouts.app') 2 3@section('content') 4 @if (count($items) > 0) 5 @foreach ($items as $item) 6 <p>{{ $item->id }}</p> 7 <p>{{ $item->name }}</p> 8 <p>{{ $item->desc }}</p> 9 <p>{{ $item->price }}</p> 10 <p>{{ $item->imgpath }}</p> 11 @endforeach 12 @endif 13@endsection

ItemController

php

1class ItemsController extends Controller 2{ 3 public function index() 4 { 5 $data = []; 6 7 if (\Auth::check()){ 8 $admin = \Auth::admin(); 9 10 11 $items = Item::first(); 12 13 $data = ( 14 'admin' => $admin, 15 'items' => $items, 16 ); 17 18 } 19 return view('admin.items.index', $data); 20 21 } 22

$adminは現在は出力させていませんが、後に出力させたいので、定義しております。
他、参照したいファイルございましたら、おっしゃってください。

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

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

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

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

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

guest

回答2

0

Controllerでもitemsに定義しているはずなのですが、このようにエラーが出ています。

お言葉を返す様ですが、タイトルの通りUndefined variable: itemsとなっています。
エラーメッセージはエラーが起きていることを知らせるだけではなく、何が原因かも知らせています。

Undefined variable未定義の変数ということです。

PHP

1// $data = ( 2// 'admin' => $admin, 3// 'items' => $items, 4// ); 5 6$data = array( 7 'admin' => $admin, 8 'items' => $items, 9); 10 11// もしくは 12 13$data = [ 14 'admin' => $admin, 15 'items' => $items, 16];

PHP

1@extends('layouts.app') 2 3@section('content') 4 @if (count($data['items']) > 0) 5 @foreach ($data['items'] as $item) 6 <p>{{ $item->id }}</p> 7 <p>{{ $item->name }}</p> 8 <p>{{ $item->desc }}</p> 9 <p>{{ $item->price }}</p> 10 <p>{{ $item->imgpath }}</p> 11 @endforeach 12 @endif 13@endsection

投稿2020/12/10 03:37

kai0310

総合スコア2070

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

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

hatevexing

2020/12/10 05:09

ご回答ありがとうございます。 上記のご指摘ありがとうございます。Contorollerで$data=array()もためしたあと、修正し忘れていました。申し訳ありません。 再度、修正しviewも、$data{'items'}に修正したところ。「Undefined variable: data」のエラーが出ました。 Contolloerとmodelで問題があり、itemのデータを受け取れていないのでしょうか?
kai0310

2020/12/10 08:23

> 再度、修正しviewも、$data{'items'}に修正したところ そんなこと誰も言ってないです。せめてちゃんと回答を読みましょう。
guest

0

php

1@extends('layouts.app') 2 3@section('content') 4 @if (count($data['items']) > 0) 5 @foreach ($data['items'] as $item) 6 <p>{{ $item->id }}</p> 7 <p>{{ $item->name }}</p> 8 <p>{{ $item->desc }}</p> 9 <p>{{ $item->price }}</p> 10 <p>{{ $item->imgpath }}</p> 11 @endforeach 12 @endif 13@endsection

投稿2020/12/10 03:29

phper.k

総合スコア3923

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

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

hatevexing

2020/12/10 05:05

ご回答ありがとうございます。 上記の通りコードを訂正し、再度ブラウザを読み込んだところ、次は「Undefined variable: data」のエラーが出ました。 何か、心当たりのことございますでしょうか?
phper.k

2020/12/10 05:30 編集

return view('admin.items.index', $data); ↓ eturn view('admin.items.index', compact('data')); まちがい多すぎて、さすがに全部は面倒見切れないですわ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問