Rumah  >  Soal Jawab  >  teks badan

Kelas sasaran tidak wujud. Selepas menamakan semula pengawal dan model

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 AppModelsOrderdalam 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粉691958181P粉691958181300 hari yang lalu401

membalas semua(1)saya akan balas

  • P粉545956597

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

    balas
    0
  • Batalbalas