laravel5.8,vue.js2.5,axiosで非同期でメッセージを投稿する機能を実装中です。
axiosでPOSTしているのですが、
以下のエラーが表示され困っています。
・デベロッパーツールで確認したエラー内容
"SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value
上記から、user_idの初期値が入っていないことが分かります。
controller内ではユーザー情報を取得してレコード情報に入れるメソッドを使用したのですが、
axiosでPOSTする際には、Auth、もしくは$request->userが使用できません。
・API/Impressionコントローラー内の処理(storeアクション)
public function store(StoreImpressionsRequest $request) { $message = $request->all(); $message['user_id'] = $request->user()->id; // $message['user_id'] = Auth::id(); $impression = Impression::create($message); return response()->json($impression); }
また、ルーティングはweb.phpの方に書いています。
Route::prefix('api')->group(function () { Route::apiResource('/impressions', 'API\ImpressionController'); });
vue(vuex)側のメソッドは以下
async doMessage({ commit }, msgData) { console.log("送信するデータ:" + JSON.stringify(msgData)); await axios .post("/api/impressions", { book_id: msgData.book_id, msg: msgData.msg, secret: msgData.secret }) .then(response => { console.log("データ送信完了"); console.log(response); }) .catch(error => { console.log("送信失敗" + error); }); }
上記コメントアウトにも書かれている通り、Authも試してみたのですが、解決できず。
お手数おかけしますが、アドバイスいただけますと幸いです。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/23 13:36
2020/01/23 15:04