首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel : Illuminate\Contracts\Container\BindingResolutionException:目标类

Laravel : Illuminate\Contracts\Container\BindingResolutionException:目标类
EN

Stack Overflow用户
提问于 2021-04-23 07:15:43
回答 2查看 2.5K关注 0票数 1

我正在研究API。我想要创建登录api。我在API文件夹中创建了UsersController,它是在控制器中创建的。当我在邮递员中运行时,我显示了一个错误。

代码语言:javascript
运行
复制
Illuminate\Contracts\Container\BindingResolutionException: Target class [App\Http\Controllers\App\Http\Controllers\API\UsersController] does not exist. in file F:\University_Data\xamp\htdocs\stylooworld\vendor\laravel\framework\src\Illuminate\Container\Container.php on line 835`

我现在不知道为什么它会复制路由路径目标类App\Http\Controllers\App\Http\Controllers\API\UsersController

api.php

代码语言:javascript
运行
复制
<?php

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});


Route::namespace('App\Http\Controllers\API')->group(function () {

    Route::post('login', 'UsersController@loginUser');
});

UsersController.php

代码语言:javascript
运行
复制
<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Controllers\UserController;

class UsersController extends Controller
{
    //
    public function loginUser(Request $request)
    {
        if ($request->isMethod('post')) {
            $data = $request->all();
            echo "<pre>";
            print_r($data);
            die;
            if (Auth::attempt(['email' => $data['email'], 'password' => $data['password']])) {

                // check email is activated or not (Only Work Online Server)
                /*   $userStatus = User::where('email', $data['email'])->first();
                if ($userStatus->status == 0) {
                    Auth::logout();
                    $message = "Your account is not activated yet! Please confirm your email to activate!";
                    Session::flash('error_message', $message);
                    return redirect()->back();
                }*/

                //update user cart with user id
                if (!empty(Session::get('session_id'))) {
                    $user_id = Auth::user()->id;
                    $session_id = Session::get('session_id');
                    Cart::where('session_id', $session_id)->update(['user_id' => $user_id]);
                }

                return redirect('/');
            } else {
                $message = "Invalid Username or Password";
                Session::flash('error_message', $message);
                return redirect()->back();
            }
        }
    }
}

我不知道为什么会这样?

EN

回答 2

Stack Overflow用户

发布于 2021-04-24 07:42:46

更新路线。有关详细信息,请查看(参考链接) https://laravel.com/docs/8.x/upgradehttps://laravel.com/docs/8.x/releases#routing-namespace-updates

像这样使用

api.php

如果不起作用

代码语言:javascript
运行
复制
Route::namespace('App\Http\Controllers\API')->group(function () {
Route::post('login', 'UsersController@loginUser');
});

然后像这样使用

代码语言:javascript
运行
复制
use App\Http\Controllers\API\UsersController;
Route::post('login', [UsersController::class, 'loginUser']);
票数 2
EN

Stack Overflow用户

发布于 2021-10-15 06:17:03

导入方法请求

类请求扩展SymfonyRequest实现了Arrayable,ArrayAccess

单击(导入方法)始终就绪。你还好么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67225563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档