【发布时间】: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>';
}
我尝试过的解决方案
RouteServiceProvider.php
protected $namespace = 'App\\Http\\Controllers';
取消注释这一行并不能解决问题
- 清理缓存
php artisan route:cache不起作用
还有其他解决方案还是我的代码有问题?
【问题讨论】:
-
User模型在当前命名空间中没有找到,你需要use正确的命名空间 -
任何时候你在一个文件中引用一个类,比如
User $user,或者User::create()等等,你需要确保这个类在当前类中是可用的,如果他们共享相同的命名空间,明确地通过完整的命名空间 (App\Models\User::create()),或通过 Import,如下面的答案所示。 Stackoverflow上有很多问题都存在相同或类似的错误,解决方法如下;下次请花点时间检查。 -
另外,您在输入提示
$id是User,然后在查询中将其用作实际 ID。这似乎不对...