現在Laravel5 を使ってWebアプリを作成しています。
Eloquentを使ってDBとのやり取りをしているのですが、うまくいかない所があります。
DBから引っ張て来たデータを一覧として画面に表示させていて、その表示されているデータの詳細ボタンを押すと、そのデータの詳細画面が開かれるという処理をさせていたのですが、先ほど急にエラーが出始めました。
処理の内容はこんな感じです。
- 表示されているそれぞれのデータに付いている詳細ボタンを押すとid検索でそのデータの細かいデータも詳細画面に表示させる。※詳細画面のURLは'details'です。
PHP
1<a href="/bicycleapp/home/details?id={{$item->id}}" class="btn btn-light">詳細</a>
- ルーティングで詳細画面のURLに接続するとItemControllerにあるdetailsViewアクションを作動させる。
PHP
1//詳細ページ表示 2Route::get('bicycleapp/home/details',('ItemController@detailsView'));
- ItemControllerの中身。単純にテーブルからidを取得しているだけです。※テーブル名はitemsでモデルクラス名はItemです。
PHP
1 ⋮ 2 //詳細ページ表示アクション 3 public function detailsView(Request $request){ 4 $id = $request->id; 5 $items = Item::find('id',$id)->get(); 6 return view ('details', ['items' => $items]); 7 } 8}
- 取得したidをもとに他のフィールドのデータも表示させています。※'details'のページ
PHP
1※表示データは一部省略してます 2if($items != null) 3 @foreach($items as $item) 4 {{$item->name}} 5 {{$item->weigh}} 6 {{$item->model_year}} 7 @endforeach 8 @endif
- モデルクラスの設定
PHP
1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Item extends Model 8{ 9 protected $guarded = array('id'); 10} 11``` 12先ほどまでこのやり方でうまく表示できていたのですが、今表示しようとすると 13![イメージ説明](b16a2feed81b9035846b11d1de4a50ae.png) 14![イメージ説明](d49f6b79ad1baefa50ed0cd4de78d4a8.png) 15このように「指定された型の配列、文字列でなければなりません」的なエラーが出てきます。 16解決策はありますでしょうか? 17また、自分がやろうとしている処理は上記以外にも他にいいやり方があるのでしょうか? 18 19自分では気づかないうちに誤操作でどこかをいじってしまった可能性はあります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/14 03:54