有一种将CSV数据导入数据库的方法。我使用进行一些基本验证
class CsvImportController extends Controller
{
public function import(Request $request)
{
$this->validate($request, [
'csv_file' => 'required|mimes:csv,txt',
]);
但是在那之后,由于更复杂的原因,事情可能会出错,在兔子洞的更深处,这会引发某种异常。我无法在validate
此处编写用于该方法的适当的验证内容,但是,我真的很喜欢验证失败时Laravel的工作方式以及将错误嵌入到刀片视图中的难易程度,等等。
是否有一种(最好是干净的)方式手动告诉Laravel:“我知道我validate
现在没有使用您的方法,但我真的很希望您像在这里一样暴露此错误”?是否有我可以返回的东西,可以包装东西的异常之类的东西?
try
{
// Call the rabbit hole of an import method
}
catch(\Exception $e)
{
// Can I return/throw something that to Laravel looks
// like a validation error and acts accordingly here?
}
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) { return $value == 'foo'; });
这样的复杂处理,然后可以在规则中添加foo规则'csv_file' => 'required|foo|mimes:csv,txt',
?