Rumah > Soal Jawab > teks badan
Apabila saya memulakan projek di Laravel, saya mempunyai ReturnController. Tetapi disebabkan konvensyen penamaan, saya terpaksa menamakannya semula kepada OrderController. Saya menamakan semula pengawal dan model dan saya menjalankan semua php artisan cache:clear、php artisan route:cache、php artisan config:cache ...
等,但是当我尝试在 中创建订单时>viewsordersadd.blade.php
(表单的操作是action="{{route('orders.store') }}"
)
Saya mendapat ralat目标类 [OrderController] 不存在。
Ini adalah web.php
kandungan:
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']);
Apa yang saya terlepas? Bagaimanakah saya boleh membetulkannya sebelum menulis semula keseluruhan aplikasi dari awal dengan nama pengawal yang betul?
Petunjuk lain ialah, untuk menavigasi ke http://127.0.0.1:8000/home
,奇怪的是我必须添加行 use AppModelsOrder
dalam OrderController.php untuk berfungsi...jadi inilah OrderController.php untuk membantu...
<?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
Dalam web.php dan bukannya:
Route::resource('customers', 'CustomerController'); Route::resource('orders', 'OrderController');
Penggunaan:
Route::resource('customers', App\Http\Controllers\CustomerController::class); Route::resource('orders', App\Http\Controllers\OrderController::class);