Heim  >  Fragen und Antworten  >  Hauptteil

Die Zielklasse existiert nicht. Nach dem Umbenennen von Controller und Modell

Als ich das Projekt in Laravel startete, hatte ich einen ReturnController. Aufgrund der Namenskonvention musste ich es jedoch in OrderController umbenennen. Ich habe den Controller und das Modell umbenannt und alle ausgeführt php artisan cache:clear、php artisan route:cache、php artisan config:cache ... 等,但是当我尝试在 中创建订单时>viewsordersadd.blade.php(表单的操作是action="{{route('orders.store') }}")

Ich habe einen Fehler erhalten目标类 [OrderController] 不存在。

Das ist der web.php Inhalt:

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']);

Was habe ich verpasst? Wie kann ich das beheben, bevor ich die gesamte Anwendung mit den richtigen Controller-Namen von Grund auf neu schreibe?

Ein weiterer Hinweis ist, um zu http://127.0.0.1:8000/home ,奇怪的是我必须添加行 use AppModelsOrderin OrderController.php zu navigieren, um zu funktionieren... also hier ist OrderController.php, um zu helfen...

<?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'));
    }
}

P粉691958181P粉691958181251 Tage vor353

Antworte allen(1)Ich werde antworten

  • P粉545956597

    P粉5459565972024-01-17 14:58:06

    在 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);

    Antwort
    0
  • StornierenAntwort