Quand j'ai démarré le projet dans Laravel, j'avais un ReturnController. Mais en raison de la convention de dénomination, j'ai dû le renommer OrderController. J'ai renommé le contrôleur et le modèle et j'ai tout exécuté php artisan cache:clear、php artisan route:cache、php artisan config:cache ...
等,但是当我尝试在 中创建订单时>viewsordersadd.blade.php
(表单的操作是action="{{route('orders.store') }}"
)
J'ai eu une erreur目标类 [OrderController] 不存在。
Voici le web.php
contenu :
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']);
Qu'est-ce que j'ai raté ? Comment puis-je résoudre ce problème avant de réécrire l'intégralité de l'application à partir de zéro avec les noms de contrôleurs corrects ?
Un autre indice est que pour accéder à http://127.0.0.1:8000/home
,奇怪的是我必须添加行 use AppModelsOrder
dans OrderController.php afin de fonctionner... voici donc OrderController.php pour vous aider...
<?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')); } }
Dans web.php au lieu de :
Utilisation :