laravel 目标类[OrderController]不存在,重命名控制器和模型后

toiithl6  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(181)

当我在Laravel开始这个项目时,我有一个ReturnController。但由于命名约定,我不得不将其重命名为OrderController。我重命名了控制器和模型,我运行了所有的php artisan cache:clear, php artisan route:cache, php artisan config:cache ...等,但当我试图在views\orders\add.blade.php中创建订单时(表单的操作是action="{{ route('orders.store') }}"
我得到错误Target class [OrderController] does not exist.
以下是web.php内容:

Route::get('/', function () {
    return view('welcome');
});

Route::resource('customers', 'CustomerController');

Route::resource('orders', 'OrderController');

Auth::routes();

Route::get('/home', [App\Http\Controllers\OrderController::class, 'showOrders'])->name('orders');

Route::get('/orders/create', [App\Http\Controllers\OrderController::class, 'create'])->name('orders.create');

Route::get('/orders', [App\Http\Controllers\OrderController::class, 'index']);

我错过了什么?在我用正确的控制器名称从头重写整个应用程序之前,我如何解决这个问题?
另一个线索是,为了导航到http://127.0.0.1:8000/home,我不得不在OrderController中添加use App\Models\Order行。php为了工作这里是OrderController。php是有帮助的。..

<?php

namespace App\Http\Controllers;
use App\Models\Order;
use App\Models\Customer;
use App\Models\Product;

use Illuminate\Http\Request;

class OrderController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        $customers = Customer::all();
        $products = Product::all();
        return view('orders.add', compact('customers', 'products'));
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }

    public function showOrders()
    {
        $orders = Order::with(['customer', 'products'])->get();

        return view('home', compact('orders'));
    }
}
cxfofazt

cxfofazt1#

在web.php中,而不是:

Route::resource('customers', 'CustomerController');

Route::resource('orders', 'OrderController');

用途:

Route::resource('customers', App\Http\Controllers\CustomerController::class);
Route::resource('orders', App\Http\Controllers\OrderController::class);

相关问题