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

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

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

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

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

PHP

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

Q&A

解決済

1回答

1471閲覧

【Laravel Heroku デプロイ】Target class [App\HTTP\Controllers\IssueController] does not exist.のエラーを解決したい

hasuke

総合スコア1

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/10/02 11:43

前提・実現したいこと

PHP(Laravel8)でタスク管理アプリのようなものを作成しています。
ローカルでは正しく動作していたのですが、herokuにデプロイしようとした($heroku open)際、
エラーメッセージが発生しました。
Laravel開発やherokuデプロイに知見のある方いましたら、
エラーの解決策を教えていただけますと幸いです。
herokuでマイグレーションも成功済みです。

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

Target class [App\HTTP\Controllers\IssueController] does not exist.

該当のソースコード

web.php

PHP

1<?php 2 3use Illuminate\Support\Facades\Route; 4use App\HTTP\Controllers\IssueController; 5 6 7// 課題登録画面を表示 8Route::get('/', [IssueController::class,'showCreate'])->name('create'); 9 10// アクション一覧画面を表示 11Route::get('/issue/lists', [IssueController::class,'showList'])->name('lists'); 12 13// 課題登録 14Route::post('/issue/store', [IssueController::class,'exeStore'])->name('store'); 15 16// 課題詳細画面を表示 17Route::get('/issue/{id}', [IssueController::class,'showDetail'])->name('show'); 18 19// 課題編集画面を表示 20Route::get('/issue/edit/{id}', [IssueController::class,'showEdit'])->name('edit'); 21 22// 課題更新 23Route::post('/issue/update', [IssueController::class,'exeUpdate'])->name('update'); 24 25// 課題削除 26Route::post('/issue/delete{id}', [IssueController::class,'exeDelete'])->name('delete');

該当のソースコード

IssueController.php

PHP

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Models\Models\Issue; 7use App\Http\Requests\IssueRequest; 8 9class IssueController extends Controller 10{ 11 /** 12 * アクション一覧を表示する 13 * @return View 14 */ 15 public function showList() 16 { 17 $issues = Issue::all(); 18 return view('issue.list', ['issues' => $issues]); 19 } 20 /** 21 * 課題詳細を表示する 22 * @param int $id 23 * @return View 24 */ 25 public function showDetail($id) 26 { 27 $issue = Issue::find($id); 28 29 if (is_null($issue)) { 30 \Session::flash('err_msg', 'データがありません'); 31 return redirect(route('lists')); 32 } 33 34 return view('issue.detail', ['issue' => $issue]); 35 } 36 /** 37 * 課題登録フォームを表示する 38 * @return View 39 */ 40 public function showCreate() 41 { 42 return view('issue.form'); 43 } 44 /** 45 * 課題を登録する 46 * @return View 47 */ 48 public function exeStore(IssueRequest $request) 49 { 50 // 課題のデータを受け取る 51 $inputs = $request->all(); 52 53 \DB::beginTransaction(); 54 try { 55 // 課題を登録 56 Issue::create($inputs); 57 \DB::commit(); 58 } catch(\Throwable $e) { 59 \DB::rollback(); 60 abort(500); 61 } 62 63 \Session::flash('err_msg', 'アクションを登録しました'); 64 return redirect(route('lists')); 65 } 66 /** 67 * 課題編集画面を表示する 68 * @param int $id 69 * @return View 70 */ 71 public function showEdit($id) 72 { 73 $issue = Issue::find($id); 74 75 if (is_null($issue)) { 76 \Session::flash('err_msg', 'データがありません'); 77 return redirect(route('lists')); 78 } 79 80 return view('issue.edit', ['issue' => $issue]); 81 } 82 /** 83 * 課題を更新する 84 * @return View 85 */ 86 public function exeUpdate(IssueRequest $request) 87 { 88 // 課題のデータを受け取る 89 $inputs = $request->all(); 90 91 \DB::beginTransaction(); 92 try { 93 // 課題を更新 94 $issue = Issue::find($inputs['id']); 95 96 $issue->fill([ 97 'goal' => $inputs['goal'], 98 'now' => $inputs['now'], 99 'why' => $inputs['why'], 100 'action' => $inputs['action'], 101 'deadline' => $inputs['deadline'] 102 ]); 103 $issue->save(); 104 \DB::commit(); 105 } catch(\Throwable $e) { 106 \DB::rollback(); 107 abort(500); 108 } 109 110 \Session::flash('err_msg', '課題を更新しました'); 111 return redirect(route('lists')); 112 } 113 /** 114 * 課題を削除する 115 * @param int $id 116 * @return View 117 */ 118 public function exeDelete($id) 119 { 120 if (empty($id)) { 121 \Session::flash('err_msg', 'データがありません'); 122 return redirect(route('lists')); 123 } 124 try { 125 // 課題を削除 126 Issue::destroy($id); 127 } catch(\Throwable $e) { 128 abort(500); 129 } 130 131 \Session::flash('err_msg', '削除しました'); 132 return redirect(route('lists')); 133 } 134}

該当のソースコード

composer.json

JSON

1{ 2 "name": "laravel/laravel", 3 "type": "project", 4 "description": "The Laravel Framework.", 5 "keywords": [ 6 "framework", 7 "laravel" 8 ], 9 "license": "MIT", 10 "require": { 11 "php": "^7.3", 12 "fideloper/proxy": "^4.2", 13 "fruitcake/laravel-cors": "^2.0", 14 "guzzlehttp/guzzle": "^7.0.1", 15 "laravel/framework": "^8.0", 16 "laravel/tinker": "^2.0", 17 "laravel/ui": "^3.0" 18 }, 19 "require-dev": { 20 "facade/ignition": "^2.3.6", 21 "fzaninotto/faker": "^1.9.1", 22 "mockery/mockery": "^1.3.1", 23 "nunomaduro/collision": "^5.0", 24 "phpunit/phpunit": "^9.3" 25 }, 26 "config": { 27 "optimize-autoloader": true, 28 "preferred-install": "dist", 29 "sort-packages": true 30 }, 31 "extra": { 32 "laravel": { 33 "dont-discover": [] 34 } 35 }, 36 "autoload": { 37 "psr-4": { 38 "App\": "app/", 39 "Database\Factories\": "database/factories/", 40 "Database\Seeders\": "database/seeders/" 41 } 42 }, 43 "autoload-dev": { 44 "psr-4": { 45 "Tests\": "tests/" 46 } 47 }, 48 "minimum-stability": "dev", 49 "prefer-stable": true, 50 "scripts": { 51 "post-autoload-dump": [ 52 "Illuminate\Foundation\ComposerScripts::postAutoloadDump", 53 "@php artisan package:discover --ansi" 54 ], 55 "post-root-package-install": [ 56 "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 57 ], 58 "post-create-project-cmd": [ 59 "@php artisan key:generate --ansi" 60 ], 61 "compile":[ 62 "@php -r \"file_exists('.env') || copy('.env.heroku', '.env');\"" 63 ] 64 } 65} 66

該当のソースコード

Procfile

Procfile

1web: vendor/bin/heroku-php-apache2 public

試したこと

①大文字・小文字のスペルチェック
②キャッシュ等は削除
③Laravel8のルーティング記載になっているかチェック

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

PHP 7.3.11
Laravel Framework 8.6.0
mysql Ver 14.14
heroku/7.44.0

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

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

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

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

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

guest

回答1

0

ベストアンサー

web.phpのHTTPが違う。

開発環境のOS情報を書いたほうが質問の価値が上がる。
case-sensitiveの話なのでOS毎に違う。
開発中は問題なかったけど本番のLinuxでだけエラー。
小さいミスだけど今後も遭遇する人が出る可能性はある。

投稿2020/10/02 12:33

kawax

総合スコア10377

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

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

hasuke

2020/10/02 15:09

凡ミスすみませんでした。解決いたしました。 本当にありがとうございました! 以後、質問する際は開発環境のOS情報も記載するようにいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問