🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

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

Q&A

解決済

1回答

413閲覧

DBからのデータ抽出及び表示でのエラー

Nitta

総合スコア96

Laravel

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

0グッド

0クリップ

投稿2019/10/28 23:45

お世話になってます。
今、Laravelで簡単な顧客システムを作成していますが、
DBからデータ抽出できているにもかかわらず、foreachで
エラーが出て困っております。
何が悪いのかがわからない状態です。
お分かりの方居られましたら、ご教示下さい。

●エラー名

Invalid argument supplied for foreach() (View: C:\Users\k45152001h3\TEST1\resources\views\nitta.blade.php)

●Model

<?php namespace App; use Illuminate\Database\Eloquent\Model; class customer extends Model { protected $fillable = ['name','address','mail','memo',]; //protected $primaryKey = 'id'; }

●ルート

Route::get('/','CustomerController@getIndex');

●コントローラー

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\customer; use App\Http\Requests; use DB; class CustomerController extends Controller { public function getIndex() { //$query = \App\customer::query(); $users = \App\customer::orderBy('id','asc')->paginate(10); return view('nitta')->with('yamada','$users'); } public function confirm(\App\Http\Request $request) { $validateRules = [ 'name' => 'required', 'mail' => 'required|email', 'address' => 'required' ]; $validateMessages = ["required" => "必須項目です!!", "email" => "メールアドレス形式で入力!!"]; $this->validate( $request, $validateRules, $validateMessages); $data = $request->all(); return view('insert.confirm')->with($data); } // }

状況イメージ説明

●view

@extends('layouts.master') @section('title','Home') @section('nitta') <div class="container"> <div class="row"> <div class="col-sm-3"><h2>顧客登録画面</h2></div> <div class="col-sm-2"></div> <div class="col-sm-6" style="margin-top: 20px; color:blue;"><p>フォームに入力</p></div> </div> <form class="form-horizontal" id="SampleData" role="form" action="{{ route('insert.confirm') }}" method="post"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <!--name--> <div class="form-group @if($errors->has('username')) has-error @endif"> <label class="col-sm-2 control-label" for="username">名 前</label> <div class="col-sm-6"> <input type="text" id="username" class="form-control" name="username" value="" placeholder="名前を入力"> @if($errors->has('username'))<span class="text-danger">{{ $errors->first('username')}}</span> @endif </div> </div> <!--title--> <div class="form-group @if($errors->has('address')) has-error @endif"> <label class="col-sm-2 control-label" for="mail">住 所</label> <div class="col-sm-6"> <input type="text" id="address" class="form-control" name="address" value="" placeholder="住所を入力"> @if($errors->has('address'))<span class="text-danger">{{ $errors->first('address')}}</span> @endif </div> </div> <!--title--> <div class="form-group @if($errors->has('customer_email')) has-error @endif"> <label class="col-sm-2 control-label" for="mail">メールアドレス</label> <div class="col-sm-6"> <input type="text" id="customer_email" class="form-control" name="customer_email" value="" placeholder="メールアドレスを入力"> @if($errors->has('customer_email'))<span class="text-danger">{{ $errors->first('customer_email')}}</span> @endif </div> </div> <!--memo--> <div class="form-group"> <label for="memo" class="col-sm-2 control-label">メ モ</label> <div class="col-sm-6"> <textarea rows="4" cols="40" id="memo" class="form-control" name="memo" value="" placeholder="備考内容を記入"></textarea> </div> </div> <div class="btn-toobar"> <div class="btn-group"> <button type="submit">顧客データ登録</button> </div> </div> </form> <br> <hr> <table class="table table-striped"> <thead style="background-color: #FFCCFF;"> <tr> <th>ID</th> <th>名 前</th> <th>住 所</th> <th>メールアドレス</th> <th>メ モ</th> <th>更 新</th> <th>削 除</th> </tr> </thead> <tbody> @foreach($yamada as $nitta) <tr> <td>{{ $nitta->id }}</td> <td>{{ $nitta->name }}</td> <td>{{ $nitta->address }}</td> <td>{{ $nitta->mail }}</td> <td>{{ $nitta->memo }}</td> <td><a href="/edit/{{ $nitta->id }}" class="btn btm-primary btn-sm">更新</a></td> <td><a href="/delete/{{ $nitta->id }}" class="btn btm-danger btn-sm">削除</a></td> </tr> @endforeach </tbody> </table> <!-- page control --> <div class="text-center"> {{ $yamada->links() }} </div> </div> @endsection

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

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

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

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

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

guest

回答1

0

ベストアンサー

'$users'では変数ではなくそういう文字列を渡しているだけです。

php

1$hoge = "test"; 2echo '$hoge'; 3echo $hoge; 4echo "$hoge";

投稿2019/10/29 00:21

編集2019/10/29 00:23
m.ts10806

総合スコア80875

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

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

Nitta

2019/10/29 00:50

返信ありがとうございます。 流石でございます。 後、もう一つ質問に答えていただけますでしょうか? 次に書きます。
m.ts10806

2019/10/29 00:54

というよりデバッグの場所間違えてる気がします。「ただしく渡せているか」を確認するのでしたら利用する直前、viewのforeachの手前でdd()しましょう。 >もう一つ 気が向けば答えるかもしれません。 (teratailの回答依頼きても必ず応えるわけではないので)
Nitta

2019/10/29 00:57

是非ともお願いします。 作成中です。
m.ts10806

2019/10/29 01:01

勘違いされては困るので一応補足しておきますと私のLaravel1位は嫌がらせを受けたものなので、私よりできる人の方がたくさんいます。 あと今回はLaravelというよりPHPの基本部分のミスであるという点は忘れないようにしてください。変数とかそのあたりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問