我正试图在BoController中实现一个名为"deleteBooking"的新方法,该方法定义为:
public function deleteBooking($id){
$booking = Reservation::find($id);
if($booking && $booking->delete()){
try {
$email = Mail::to($booking->user_email)->send(new Cancel($booking));
} catch(Exception $e){
Log::error($e->getMessage());
}
return redirect('admin/manager/home')->with('message','Réservation annulée!');
}
return redirect('admin/manager/home')->with('message','Réservation non annulée!');
}
但拉拉维尔在终点说:
(1/1) BadMethodCallException
Method [deleteBooking] does not exist.
来自同一类的其他方法也链接到端点,并且运行良好。
你有什么想法吗?非常感谢。
我修复了它,我在另一个文件夹中找到了另一个名为BoController的文件,不知怎么的,它与App\Http\Controllers的文件冲突。
谢谢。
很可能您已经为其他请求类型声明了该函数,而不是您试图创建的请求类型。例如,您放置了Route::post('some-method', 'BoController@deleteBooking');
,但需要放置Route::get(...)
、Route::put(...)
或Route::delete(...)
。
如果不是那个问题,那么你可能拼错了。
我也遇到过类似的问题。然后我发现了composer安装日志中指出的一个问题,日志行的实例如下:
Class AppHttpControllersBlogController located in ./app/Http/Controllers/BlogControllerOld.php does not comply with psr-4 autoloading standard. Skipping.
基于此,我发现其中一个用Old后缀重命名的文件与主文件发生了冲突。因此,我必须选择以下解决方案之一:
- 删除为备份创建的文件
- 或者将重复文件中的类重命名为BlogControllerOld
因此检查composer install
的问题是个好主意
它将突出显示可以使用上述方法之一解决的冲突。使用上述指定方法修复后,发布composer install
以应用修复并重新生成自动加载器。