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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

380閲覧

Laravelでテーブルから値を取得できない。

Ray_of_light

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/07/26 21:31

実現したいこと

データベースからの値の取得。

発生している問題・エラーメッセージ

Laravelをブラウザで実行したときのエラーメッセージ Class "App\Http\Controllers\log_conditions" not found

該当のソースコード

コントローラー

LogController.php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7use App\Models\log_condition; 8 9class LogController extends Controller 10{ 11 /** 12 * Display a listing of the resource. 13 * 14 * @return \Illuminate\Http\Response 15 */ 16 public function index() 17 { 18 // 19 $data = [ 20 'records' => log_conditions::all() 21 ]; 22 return view('search',$data); 23 } 24}

モデル

log_condition.php

1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7 8class log_condition extends Model 9{ 10 use HasFactory; 11 12 protected $table = "log_conditions"; 13} 14

phpMyAdminでのtable名

1SELECT * FROM `log_conditions`

試したこと

breezeで、user登録をできるのでデータベースとの連携は問題ないと思います。
以前も同じアプリを作成し、ルーティングのなどがLaravelの仕様に則っていなかった為、再制作時に発生しております。(以前はうまく取得できていたのですが...。)

補足情報(FW/ツールのバージョンなど)

M1Mac
Laravel9
DockerDesktop

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

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

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

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

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

guest

回答1

0

ベストアンサー

モデルのクラス命名(とファイル名)が、アッパーキャメルケース(StudlyCase)じゃないからですかね。

投稿2022/07/27 00:56

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Ray_of_light

2022/07/27 11:52

回答ありがとうございます。 ご回答のアッパーキャメルケースに変換作業中に気が着いたのですが、コントローラーのテーブルの呼び出しには’テーブル名’ではなく’モデル名’を記載するのですね。上記コードのlog_conditions ”s”を消すことテーブルの値を取得できました。 クラス命名(とファイル名)をアッパーキャメルケースにして、公式リファレンスどうりにコントローラーでのuse App\Models\log_condition;とモデルの protected $table = "log_conditions";を削除して検証してみましたがエラーが出てしまいました。調べてみたところLaravelではテーブル名に_(アンダースコア)をつけるとリレーションや中間テーブルの作成になるそうで、これが原因でエラーになったのだと思います。 今回、新しい気づきを得ることができ、無事に問題の解決に至ることできたのでベストアンサーとさせて頂きます。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問