arapon1201
@arapon1201

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ルーティングが上手くいかない

解決したいこと

ルーティングがうまくいかない


ターゲットクラス[app \ Http \ Controllers \ HelloController]が存在しません。
Target class [app\Http\Controllers\HelloController] does not exist.


<?php

namespace app\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{

   public function index() {

       return <<<EOF
<html>
<head>
<title>Hello/Index</title>
<style>
body {font-size:16pt; color:#999; }
h1 { font-size:100pt; text-align:right; color:#eee;
   margin:-40px 0px -50px 0px; }
</style>
</head>
<body>
   <h1>Index</h1>
   <p>これは、Helloコントローラのindexアクションです。</p>
</body>
</html>
EOF;

   }
}

上記はHelloController.phpのコード

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

#Route::get('hello', 'app/Http/Controllers/HelloController  @index');

use app\Http\Controllers\HelloController;

Route::get('hello', [HelloController::class, 'index']);

自分で試したこと

PHPフレームワークLaravel入門通りに進めていたら
ルーティングが上手くいかない。
調べたところどうやらバージョンが合っていないみたいなのでLaravel公式ドキュメントを参考にコメントアウト部分を修正

それでも上手くいかなくこれ以上は自分では難しいので解決方法を教えていただけると助かります。

0

2Answer

ご自身のlaravelのバージョンがわかりませんが、以下でどうですか?

Route::get('hello', 'HelloController@index');
0Like

Comments

  1. @arapon1201

    Questioner

    回答ありがとうございます。
    結果はダメでした…

    参考にしている書籍は6系、自分の環境は8系で8系ドキュメントを見て変えてみたのですが
    上手くいきませんでした…
  2. あれーそうですか。。
    というか、見落としてましたが、useのappをAppに変えてみてください。これが原因かと。多分ですが
    あと、私が紹介した書き方の場合、useは不要になりますので、私の書き方を採用した場合はuseは削除してください。

    で、それでもだめなら
    エラー内容がクラスが見つからないという内容なので、
    一度composerが入っているなら、
    ```
    composer dump-autoload
    ```
    やってみて、
    ```
    php artisan config:clear
    php artisan cache:clear
    ```
    などキャッシュを削除するコマンド打ちまくってみてください。
    それでもダメなら
    https://github.com/kamotetu/my_blog/tree/master/app
    をご自身のファイルと見比べてみてください。結構昔に練習で作っていたlaravelアプリで、バージョンは6か7ですが、おそらく一緒のはずなので。
  3. @arapon1201

    Questioner

    appをAppに変更したところルーティング成功することが出来ました!
    本当にありがとうございます!
    最後に一つわからないとこがあるのですがディレクトリ名はappなのに
    use App\Http\Controllers\HelloController;
    とAppのAを大文字にしないといけないのでしょうか?
    これでちゃんとパスが通ってないんだと思い自分で小文字に変換してしまいました…
  4. おー

    use App\Http\Controllers\HelloController;
    とAppのAを大文字にしないといけないのでしょうか?

    についてですが、私もよくわからなかったのでググったところ、
    https://teratail.com/questions/273090
    こちらに理由が書いてありました。
    「laravel use app なぜ大文字」とchromeで検索したらヒットしました。

    今後ググり力がアップすればこういった疑問も自己解決できるようになると思います。
    あと、最初は疑いを捨てて、自分にフィットする記事の内容をひとまずコピペしてしまうのもおすすめです。
    お互い頑張っていきましょう!

わざわざ調べていただきありがとうございます!
本当に色々助かりました!
ありがとうございました!

0Like

Your answer might help someone💌