我有一个名为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,但没有成功。
非常感谢您!
答案 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
模型,这意味着您的模型名称空间是错误的。