有一种将 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?
}
原文由 Svish 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 laravel 5.5 开始,
ValidationException
类有一个静态方法withMessages
你可以使用:我没有对此进行测试,但它应该可以工作。
更新
消息不必包装在数组中。你也可以这样做: