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

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

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

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

PHP

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

Q&A

解決済

2回答

5803閲覧

Class 'App\Http\Controllers\Post' not foundを解決したい

yu-taro-

総合スコア4

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/11/17 12:54

前提・実現したいこと

ここに質問の内容を詳しく書いてください。

laravelを使用しインスタグラムのコピーアプリを作成中
投稿一覧ページの作成しておりルーティング→コントローラー→ビューを作成後、実行すると下記エラーとなる。
ググって調べてみたのですが解決の糸口が見つからず質問させて頂きました。

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

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Class 'App\Http\Controllers\Post' not found

該当のソースコード

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostsController extends Controller { public function __construct() { $this->middleware('auth'); } public function index() { $posts = Post::limit(10) ->orderBy('created_at', 'desc') ->get(); return view('post/index', ['posts' => $posts]); } public function new() { return view('post/new'); } public function store(Request $request) { $validator = Validator::make($request->all() , ['caption' => 'required|max:255', 'photo' => 'required']); if ($validator->fails()) { return redirect()->back()->withErrors($validator->errors())->withInput(); } $post = new Post; $post->caption = $request->caption; $post->user_id = Auth::user()->id; $post->save(); $request->photo->storeAs('public/post_images', $post->id . '.jpg'); return redirect('/'); } }

試したこと

POSTのスペルチェック(複数系や単数形など)
viewsファイルのスペルチェック

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

macOS Laravel5.5

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

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

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

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

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

yuki84web

2020/11/17 14:50

そのファイルは"App\Http\Controllers"の場所に存在していますか?
yu-taro-

2020/11/18 00:22

お忙しい中お返事頂きまして有り難うございます。 見直しましたがファイルはApp\Http\Controllers\PostsControllersにございます。 ■補足 環境はCloud9でして、Cloud9上だと上手く動作しないので、chrome上で動作確認しています。 新規登録やログインなどは上手く動作していました。 他にお伝えした方がよい情報等ございまいましたらおっしゃって頂けたらと思います。
yu-taro-

2020/11/18 05:18

App\Http\Controllers\PostsControllersに下記コードを追記したら解決しました! use App\Post; use Auth; use Validator; お時間頂き誠にありがとうございました!!
guest

回答2

0

ベストアンサー

diff

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7// どこにPostモデルを作ったか知らんけど、どちらか。 8+ use App\Models\Post; 9+ use App\Post; 10 11class PostsController extends Controller 12{ 13 14 public function __construct() 15 { 16 $this->middleware('auth'); 17 } 18 19public function index() 20 { 21 22 $posts = Post::limit(10) 23 ->orderBy('created_at', 'desc') 24 ->get(); 25 26 return view('post/index', ['posts' => $posts]); 27 } 28 29 public function new() 30 { 31 return view('post/new'); 32 33 } 34 35 public function store(Request $request) 36 { 37 $validator = Validator::make($request->all() , ['caption' => 'required|max:255', 'photo' => 'required']); 38 39 if ($validator->fails()) 40 { 41 return redirect()->back()->withErrors($validator->errors())->withInput(); 42 } 43 44 $post = new Post; 45 $post->caption = $request->caption; 46 $post->user_id = Auth::user()->id; 47 48 $post->save(); 49 50 $request->photo->storeAs('public/post_images', $post->id . '.jpg'); 51 52 return redirect('/'); 53 } 54}

投稿2020/11/18 02:49

phper.k

総合スコア3923

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

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

yu-taro-

2020/11/18 04:56

ご丁寧にありがとうございます!! 下記コードを追加してみました。 use App\Post; use Auth; use Validator; そしたらこのようなエラーとなりました。。。 ErrorException (E_ERROR) Undefined variable: posts (View: /home/ec2-user/environment/laravelgram/resources/views/post/index.blade.php) 次はviewsが何やらおかしいようなので引き続き頑張ってみます。
guest

0

routesでPostControllerを探しているが、PostControllerがないのではないでしょうか?
質問者様はPostsControllerという名前にしてしまっているからだと思います。

投稿2020/11/18 01:58

cacao86

総合スコア97

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

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

yu-taro-

2020/11/18 05:16

ご連絡頂き誠に有り難うございます!! 色々試してみたところ、App\Http\Controllers\PostsControllersに下記コードを追記したら解決しました! use App\Post; use Auth; use Validator; お時間頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問