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

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

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

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Q&A

解決済

1回答

379閲覧

Laravelでデータベースのテーブルレコードが表示できない

ranerane0101

総合スコア70

Laravel

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

0グッド

0クリップ

投稿2022/02/21 17:18

タイトルの通りです。したいことに関しての、分からないことは下記のルートでコントローラーのallメソッドは読み込めていないのか?ということです。https://readouble.com/laravel/8.x/ja/routing.html公式ドキュメントでこのことについて関連している個所ではコントローラーのクラスの使い方・読み込みは記載されていますが、これがallメソッド呼び出しが出来ているのか分かりません。

現在/reservation/request_reservationこのパスにアクセスすると、下記のviewにも書きましたが、<p>{{$reservations}}</p>の値が連想配列で渡されて

[{"id":1,"user_id":xx,"room_id":1,"starts_at":"2021-11-26 00:15:00","created_at":"2021-xx-26T09:06:41.000000Z","updated_at":"2021-11-26T09:xx:41.000000Z"},{"id":2,"user_id":xx,"room_id":1,"starts_at":"2022-02-16 00:15:00","created_at":"2022-02-16T12:16:02.000000Z","updated_at":"2022-02-16T12:16:02.000000Z"}]

このように表示は出来ていますが、きれいなテーブルとしては表示出来ず困っています。

解答よろしくお願いします。基礎的なことで申し訳ありませんがよろしくお願い致します。

*Laravel8を利用しています。

コントローラ

public function request_reservation(Request $request) { $reservations = \App\Models\Reservation::all(); return view ('reservation.request_reservation', [ 'reservations' => $reservations ]); }

view

@extends('layouts.master') @section('title', 'DBのTABLE内容を表示するサンプルページ') @section('content') <p>{{$reservations}}</p> <ul class="list-unstyled"> {{-- $dataから順に値を取り出して$valに代入します。 --}} @foreach ($reservations as $val) { {{-- $valの値を使い、その中にある各項目の値を表示します。--}} echo "<li>".$val->oname."さん</li>"; @endforeach </ul> @endsection

route

Route::get('/request_reservation',[App\Http\Controllers\ReservationController::class,'request_reservation'])->name('reservation.request_reservation');

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

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

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

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

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

m.ts10806

2022/02/21 20:05

>きれいなテーブルとしては表示出来ず 現状リストで出してるだけですかね。 「きれいなテーブル」がどんなものを想定しているのか具体的に言及されてないのでわからないのですが、モック作るのが先では?
ranerane0101

2022/02/22 08:11

完成物の想定物みたいなものでしたらありました。曖昧な表現になりすみませんでした。
guest

回答1

0

ベストアンサー

下記のような羅列で出てしまうのは,データベースからの取得の結果をそのまま<p>{{$reservations}}</p>で出力しているからです。

[{"id":1,"user_id":xx,"room_id":1,"starts_at":"2021-11-26 00:15:00","created_at":"2021-xx-26T09:06:41.000000Z","updated_at":"2021-11-26T09:xx:41.000000Z"},{"id":2,"user_id":xx,"room_id":1,"starts_at":"2022-02-16 00:15:00","created_at":"2022-02-16T12:16:02.000000Z","updated_at":"2022-02-16T12:16:02.000000Z"}]

テーブルとして表示する場合は<p>{{$reservations}}</p>は削除します。
その後@foreachでreservationsをループして表示するだけかと思います。

変数を展開したい場合、{{ $val }}のように{{}}で囲わないと表示されません

Bladeテンプレートでの記述方法を見ると理解が深まるかと思います
https://readouble.com/laravel/8.x/ja/blade.html

@foreach ($reservations as $val) { <li> {{ $val->oname }}さん </li> @endforeach

投稿2022/02/21 18:48

natsume2233

総合スコア225

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

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

m.ts10806

2022/02/21 20:06

提示されてるコード見る限り@foreachされてます。
natsume2233

2022/02/22 02:41

提示されたコードで、foreachの中での変数の展開ができていないて思います echo "<li>".$val->oname."さん</li>"; ↓ <li> {{ $val->oname }}さん </li>
ranerane0101

2022/02/22 08:09

>>>m.ts10806さん <p>{{$reservations}}</p> この部分が出力されているだけでforeachは出来ていませんでした。 >>>natsume2233さん ありがとうございます!pタグで出力できているのでもう少し照らし合わせて確認すべきでした。すみません。 お二方様、解答ありがとうございました!
m.ts10806

2022/02/22 08:17

natsume2233さん ああなるほど… 確かにPHPタグ内でもないのにecho書いてるのはおかしいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問