[英]Method App\Http\Controllers\homeController::home() does not exist error in laravel
[英]Function() does not exist error using php Laravel controllers and router
我有一個路由器 web.php 和兩個控制器。 一個是帶有我的索引/主頁的 HomeController,另一個是帶有隨機生成的數據庫的 InventoryController。 當我在本地主機上運行它時,我目前收到一個錯誤,即存在“反射異常並且 Function() 不存在”。
我的路由器 web.php:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', [\App\Http\Controllers\HomeController::class], 'pages.index');
Route::get('/inventories', [\App\Http\Controllers\InventoryController::class], 'index');
{
return View('pages.inventories');
};
我的 HomeController 代碼:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
/**
*
*/
class HomeController extends Controller
{
public function index() {
return view('pages.index');
}
}
我的 InventoryController 代碼:
<?php
namespace App\Http\Controllers;
use App\Models\Inventory;
use Illuminate\Http\Request;
/**
*
*/
class InventoryController extends Controller
{
public function index() {
$inventories = Inventory::all();
return view('pages.inventories',[
"inventories" => $inventories
]);
}
}
我知道我不想使用 __invoke() 因為將來會添加功能和內容。
Route::get('/', [\App\Http\Controllers\HomeController::class, 'index']);
Route::get('/inventories', [\App\Http\Controllers\InventoryController::class, 'index']);
而且第二個參數應該是大量在 controller 名稱方法名稱是 index 而不是 pages.index
您誤用了您的路由器定義,您需要定義數組的第二個參數,即它應該命中的 controller 上的 function。
Route::get('/', [\App\Http\Controllers\HomeController::class, 'index'])->name('pages.index');
Route::get('/inventories', [\App\Http\Controllers\InventoryController::class, 'index'])->name('index'');
似乎您還使用第三個參數作為命名,例如。 pages.index
我會改用->name()
調用。
可以這樣寫
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', [
\App\Http\Controllers\HomeController::class,
'pages.index'
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.