【问题标题】:Target class [App\Http\Controllers\OrderController] does not exist目标类 [App\Http\Controllers\OrderController] 不存在
【发布时间】:2020-11-03 08:50:12
【问题描述】:

我收到此错误“目标类 [App\Http\Controllers\OrderController] 不存在。”当我运行“php artisan route:list 时,我无法确定这段代码中的问题或问题所在,或者我只是愚蠢的 tho

<?php

namespace App\Http\Controllers;

use App\Order;
use Auth;
use Illuminate\Http\Request;

class OrderController extends Controller
{
    public function index()
    {
        return response()->json(Order::with(['product'])->get(),200);
    }

    public function deliverOrder(Order $order)
    {
        $order->is_delivered = true;
        $status = $order->save();

        return response()->json([
            'status'    => $status,
            'data'      => $order,
            'message'   => $status ? 'Order Delivered!' : 'Error Delivering Order'
        ]);
    }

    public function store(Request $request)
    {
        $order = Order::create([
            'product_id' => $request->product_id,
            'user_id' => Auth::id(),
            'quantity' => $request->quantity,
            'address' => $request->address
        ]);

        return response()->json([
            'status' => (bool) $order,
            'data'   => $order,
            'message' => $order ? 'Order Created!' : 'Error Creating Order'
        ]);
    }

    public function show(Order $order)
    {
        return response()->json($order,200);
    }

    public function update(Request $request, Order $order)
    {
        $status = $order->update(
            $request->only(['quantity'])
        );

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Order Updated!' : 'Error Updating Order'
        ]);
    }

    public function destroy(Order $order)
    {
        $status = $order->delete();

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Order Deleted!' : 'Error Deleting Order'
        ]);
    }
}

这是我的订单控制器的代码,请帮助我,并提前感谢您帮助我

【问题讨论】:

  • 请把你的web.php.
  • 控制器是否在正确的文件夹中?有时,如果您手动重命名/移动文件,事情就会变得混乱。这不应该导致该错误,但您可能还想在OrderController 中输入use App\Http\Controllers\Controller;
  • 在更改配置文件后总是尝试这个命令php artisan optimize:clear

标签: php laravel


【解决方案1】:

在命令下运行

  php artisan config:cache 

 composer dump-autoload

【讨论】:

    【解决方案2】:

    在控制器和路由之间没有拼写问题后,尝试以下可能的解决方案之一:

    1. 运行php artisan config:cache
    2. 运行composer dump-autoload
    3. 检查您的 web.php 路由并将前向 / 斜杠更改为后向 \

    检查此link 会有所帮助

    【讨论】:

      【解决方案3】:

      首先检查您的目录,您的控制器是在控制器文件夹中的单独文件夹中,还是在控制器文件夹中。如果您的 Controller 文件位于新文件夹中,例如 Controller/YourFolder/Your 文件,则您在 web.php 路径中使用如下所示

      Route::get('your url','YourFOlderName\COntrolername@methodname')->name('your route 
      name')
      

      我希望它工作正常

      【讨论】:

      • 你真的应该使用 \ 而不是 / 虽然
      【解决方案4】:

      查看路线。例如。就我而言,在 web.php 中设置路由后,我遇到了类似的错误。写错了:

       Route::get('/dispatch_notes/{order_id}','order\AddNotesController.php@dispatchNotes')
        ->name('dispatch_notes');
      

      从控制器文件夹中复制粘贴的名称错误。在建议使用缓存清除的游戏后看到了这一点,并从其名称中删除了 .php 并使其正常工作。

      【讨论】:

        【解决方案5】:

        在 laravel 8 中

        在 RouteServiceProvider 中取消注释

        protected $namespace='App\\Http\\Controllers';
        

        【讨论】:

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