Laravel 5.3とVue.jsを使用して簡単なフォーム検証をしようとしています。Vue.jsでデータが設定されていません
Laravelコントローラ:
public function test(\Illuminate\Http\Request $request)
{
$this->validate($request, [
'name' => 'required',
'date' => 'required'
]);
...
}
Vueのデータ:
let app = new Vue({
el: '#app',
data: {
submitted: false,
errors: [],
post: {
name: '',
date: '',
},
},
Vueのポスト:
Vue.http.post('url', post).then((response) => {
// form submission successful, reset post data and set submitted to true
app.post = {
name: '',
date: '',
};
// clear previous form errors
app.$set('errors', '');
app.submitted = true;
}, (response) => {
// form submission failed, pass form errors to errors array
console.log(response.data.name); //"The Name field is required."
app.$set('errors', response.data); // TypeError
});
私は
を取得していますTypeError: can't assign to properties of (new String("errors")): not an object
とapp.$set('errors', response.data);
どこが間違っていますか?
「Vue.http.post」をトリガーするメソッドはどのように見えますか? 'Vue.http'はグローバルな使い方のためのもので、Vueのインスタンスを参照する' this。$ http.post'がありますので、正しい使用事例について考えてみてください。この約束は私にはちょっと変わって見えます。レスポンスは? –
@BelminBedak、 'this。$ http.post'は同じ結果を返します。 – suncoastkid
さて、約束はどうですか?約束が満たされたときには '.then()'のシナリオがあり、問題があるときは '.catch()'が2つあります。パラメータ応答を持つ第2の方法は何ですか? –