【问题标题】:Target class [App\Http\Controllers\User] does not exist目标类 [App\Http\Controllers\User] 不存在
【发布时间】:2021-10-29 13:18:34
【问题描述】:

我正在创建一个页面,可以编辑上传歌曲的文件名、艺术家名和专辑名。目前错误状态为

目标类 [App\Http\Controllers\User] 不存在

web.php

use App\Http\Controllers\UploadController;
Route::post('/updatesongs/{id}', [UploadController::class,'update']);

上传控制器.php

public function update(Request $request,User $id)
    {   
        $songname = $request->input('song_title');
        $songartist = $request->input('song_artist');
        $songalbum = $request->input('song_album');
        DB::update('update music_uploads set filename = ?, artistname = ?, albumname = ? where id =?', [$songname, $songartist, $songalbum,$id]);
        echo "Updated successfully <br>";
        echo '<a href="/ngsongs">Click here to return</a>';
    }

我尝试过的解决方案

  1. RouteServiceProvider.php
     protected $namespace = 'App\\Http\\Controllers';

取消注释这一行并不能解决问题

  1. 清理缓存php artisan route:cache 不起作用

还有其他解决方案还是我的代码有问题?

【问题讨论】:

  • User模型在当前命名空间中没有找到,你需要use正确的命名空间
  • 任何时候你在一个文件中引用一个类,比如User $user,或者User::create()等等,你需要确保这个类在当前类中是可用的,如果他们共享相同的命名空间,明确地通过完整的命名空间 (App\Models\User::create()),或通过 Import,如下面的答案所示。 Stackoverflow上有很多问题都存在相同或类似的错误,解决方法如下;下次请花点时间检查。
  • 另外,您在输入提示 $idUser,然后在查询中将其用作实际 ID。这似乎不对...

标签: php laravel


【解决方案1】:

您应该为您在控制器中用作参数的用户模型提供命名空间:

use App\Models\User

// .......

public function update(Request $request,User $id)

【讨论】:

    【解决方案2】:

    我们可以创建一个控制器 Artisan 命令:

    php artisan make:controller QuizzStatusController
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 2021-07-13
      • 2021-10-21
      • 2018-12-14
      • 2021-02-12
      相关资源
      最近更新 更多