Php 拉雷维尔。在App::make(';foo';)上引发捕获异常->;bar()
我有一个价格控制器,可以更新我的物品的价格。在我的应用程序中,价格是一组或多个价格段(或规则) 所以我的PriceController@update是否:Php 拉雷维尔。在App::make(';foo';)上引发捕获异常->;bar(),php,laravel,laravel-4,try-catch,Php,Laravel,Laravel 4,Try Catch,我有一个价格控制器,可以更新我的物品的价格。在我的应用程序中,价格是一组或多个价格段(或规则) 所以我的PriceController@update是否: foreach (Input::get('price_segment_id') as $price_segment_id) { try { \App::make('BF\Controllers\PriceSegmentController')->update($price_segment_id); } catch(BF\
foreach (Input::get('price_segment_id') as $price_segment_id)
{
try {
\App::make('BF\Controllers\PriceSegmentController')->update($price_segment_id);
} catch(BF\Exceptions\ValidationException $e) {
$errors[] = $e->get_errors();
}
}
还有我的PriceSegmentController@update每个段的更新是否如下所示:
$priceSegment = $this->repository->find($id);
if($priceSegment) {
// UPDATE $priceSegment with Input, etc.
$this->validator->validate($priceSegment->toArray());
$priceSegment->save();
}
如果我在PriceSegmentController中执行try-catch,它将按预期工作,但我希望在PriceController中执行try-catch,以便收集所有错误并能够立即通知他们
问题是这个例外没有被发现,我不知道为什么。我猜这与App::make('foo')的行为有关,但我没有弄清楚
请帮帮忙
谢谢
编辑:我的代码结构基于此示例:我正在使用我自己的异常扩展异常PHP类我认为出现问题的原因是,您在laravel中使用了所述的默认验证机制 相反,您可以在PriceSegmentController中捕获异常,并:
- 或者使用自定义异常类型包装它们
- 或者使用在该控制器中捕获的异常创建自定义异常 并在食物链中进一步抛出您的自定义异常
希望有帮助。谢谢阿尔普。但是我已经在使用我的自定义异常。我的代码的灵感来自于扩展异常php类的ValidationException。您导入了异常类吗?请尝试捕获(\BF\Exceptions\ValidationException$e)。未捕获的异常的类名是什么?我简直不敢相信这是
BF\Exceptions\ValidationException
天哪!安德烈亚斯是对的。我错过了BF之前的首字母\首字母。。。解决了的!