Laravel ReflectionException

时间:2018-08-08 08:20:29

标签: php laravel

我有一个名为CustomerController的类,具有删除功能:

class CustomerController extends Controller

{

public function getAllCustomer()
{

    return \App\model\Customer::get();

}

public function destroy (Customer $id)
{
    $id->delete();
}

这是路线:

Route::delete('customer/{id}' , 'CustomerController@destroy');

我收到此错误:

Class App\Http\Controllers\Customer does not exist

我已经尝试了Composer更新和Composer dump-autoload,但没有成功。

屏幕截图: enter image description here

非常感谢您!

2 个答案:

答案 0 :(得分:1)

当您不使用use statements包含类时,php将尝试在当前名称空间中查找该类。

因此,函数function destroy (Customer $id)将在Customer命名空间中寻找类App\Http\Controllers。为避免这种情况,请在控制器类之上为上述App\model\Customer类添加一个use语句。例如:

<?php

namespace App\Http\Controllers;

use App\model\Customer;

class CustomerController extends Controller
{
    public function getAllCustomer()
    {
        return Customer::get();
    }

    public function destroy (Customer $id)
    {
        $id->delete();
    }
}

现在,您还可以在getAllCustomer()函数中使用较短的名称。

答案 1 :(得分:0)

更改此内容:

return \App\model\Customer::get();

对此:

在顶部添加名称空间:

use App\Customer;

return Customer::get();

在删除操作上使用路由模型绑定时,请在方法失败之前将Customer类注入方法,因此请确保在文件(CustomerController)的顶部添加模型名称空间。

正在发生错误,因为CustomerController试图在控制器名称空间中寻找Customer模型,这意味着您的模型名称空间是错误的。