laravel - 在 Laravel 框架中执行 VueJS 组件的服务器端表单验证的惯用方式?
问题描述
我是 Laravel 和 VueJS 的新手。我使用 VueJS 构建了一个 HTML 表单,并且能够将有效负载提交到 Laravel 控制器,并以 JSON 对象的形式返回适当的验证错误。我将在下面展示我的一般方法,但想知道我所做的是否被认为是惯用的 Laravel+VueJS 方式?
我有一个像这样的 Laravel 路由和控制器:
Route::post('/appetizer', 'AppetizerController@store')->name('appetizer.store');
class AppetizerController extends Controller {
public function store (Request $request) {
$request->validate([
"name"=>"required",
"calories"=>"required"
]);
// Process Credit Card
// ... ... etc ... ...
if(!$process_credit_card_success) {
return response()->json(["errors"=>["credit_card"=>$errors_from_capital_funds_management]]);
}
}
}
我制作了一个完全是 VueJS 的 HTML 表单。我添加了一个提交事件,它会像这样进行 axio 调用:
window.axios.post("/appetizer",{
"name":"Salad"
}).then(response=>{
console.log("success",response);
}).catch(response=>{
console.log("catch",response.response.data.errors);
// Update the state/properties of my VueJS components based on response.response.data.errors
});
我故意向控制器提交了一个带有表单错误的有效负载,并成功地422 unprocessable entity
在我的catch block
. 该response.response.data.errors
属性包含所有验证消息。因此,我将直接使用response.response.data.errors
以获取我的错误消息。
这是正确的方法吗?我应该直接response.response.data.errors
查看错误消息而不是其他一些抽象吗?
解决方案
推荐阅读
- sql - 如何将 Excel 数据从不同的工作表导出到 SQL-SERVER 数据库?
- php - swiftmailer 并非每次都使用 office365 发送邮件
- search - DFS - 比较两个连通图的时间和分数复杂度
- laravel - 在 laravel 中没有为我的上传文件夹获取正确的路径
- c++ - Visual C++ 项目参考的新手帮助
- javascript - 在数组对象中选择键的优雅方法
- robotframework - 在 Circle CI 上运行时机器人测试失败
- c# - SonarQube 参数 sonar.exclusions 使用的根目录是什么?
- reactjs - 带有 React 和 Boost 的 Highcharts/Highstock 无法正常工作(CPU 使用率非常高)
- java - SSLSocket 不执行主机名验证