Heim > Fragen und Antworten > Hauptteil
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 AppModelsOrder
in 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粉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);