Laravel 8: ReflectionException Function () 不存在
Laravel 8: ReflectionException Function () does not exist
我是初学者,正在学习如何使用 Laravel 8。
当我尝试执行我的代码时,我得到 error:ReflectionException Function () does not exist.
我参考了Laravel文档#Writing Controllers, #Basic Controllers部分的语法,但问题无法解决。
造成这个问题的原因是什么,如何解决?
以下代码是我在PurchaseController.php中的控制器部分:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class PurchasesController extends Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function index()
{
return view('purchases.index');
}
public function purchase()
{
//
}
以下部分是我在web.php
中的路由
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PurchaseController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/purchases', [PurchaseController::class], 'index');
Route::post('/purchases', [PurchaseController::class], 'purchase');
Route::get('/', function () {
return view('welcome');
});
更新中:
根据下面提供的答案,我已将我的代码 web.app 代码更改为以下代码。但是,我收到另一条错误消息:Illuminate\Contracts\Container\BindingResolutionException
目标 class [App\Http\Controllers\PurchasesController] 不存在。
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PurchasesController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/purchases', [PurchasesController::class, 'index']);
Route::post('/purchases', [PurchasesController::class , 'purchase']);
Route::get('/', function () {
return view('welcome');
});
我的更新PurchaseController.php代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class PurchasesController extends Controller //Change the naming as suggestion below
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function index()
{
return view('purchases.index');
}
public function purchase()
{
//
}
你应该这样写你的路线:
并将 PurchaseController 更改为 PurchasesController
Route::get('/purchases', [PurchasesController::class, 'index']);
Route::post('/purchases', [PurchasesController::class, 'purchase']);
和
use App\Http\Controllers\PurchasesController;
=> 打开 App\Providers\RouteServiceProvider.php 并取消注释此行 在 laravel 8
中尝试此操作
受保护的 $namespace = 'App\Http\Controllers';
我是初学者,正在学习如何使用 Laravel 8。 当我尝试执行我的代码时,我得到 error:ReflectionException Function () does not exist.
我参考了Laravel文档#Writing Controllers, #Basic Controllers部分的语法,但问题无法解决。
造成这个问题的原因是什么,如何解决?
以下代码是我在PurchaseController.php中的控制器部分:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class PurchasesController extends Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function index()
{
return view('purchases.index');
}
public function purchase()
{
//
}
以下部分是我在web.php
中的路由<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PurchaseController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/purchases', [PurchaseController::class], 'index');
Route::post('/purchases', [PurchaseController::class], 'purchase');
Route::get('/', function () {
return view('welcome');
});
更新中: 根据下面提供的答案,我已将我的代码 web.app 代码更改为以下代码。但是,我收到另一条错误消息:Illuminate\Contracts\Container\BindingResolutionException 目标 class [App\Http\Controllers\PurchasesController] 不存在。
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PurchasesController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/purchases', [PurchasesController::class, 'index']);
Route::post('/purchases', [PurchasesController::class , 'purchase']);
Route::get('/', function () {
return view('welcome');
});
我的更新PurchaseController.php代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class PurchasesController extends Controller //Change the naming as suggestion below
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function index()
{
return view('purchases.index');
}
public function purchase()
{
//
}
你应该这样写你的路线:
并将 PurchaseController 更改为 PurchasesController
Route::get('/purchases', [PurchasesController::class, 'index']);
Route::post('/purchases', [PurchasesController::class, 'purchase']);
和
use App\Http\Controllers\PurchasesController;
=> 打开 App\Providers\RouteServiceProvider.php 并取消注释此行 在 laravel 8
中尝试此操作受保护的 $namespace = 'App\Http\Controllers';