問題: axios
を使用して vue.js から laravel にデータを渡すときに内部サーバー エラーが発生します。新しいlaravelプロジェクトを作成し、vueを使用してbreeceをインストールしました(phpArtisan Breeze:vueのインストール)。次に、メニュー コントローラーを作成し、次のように menu.vue をレンダリングしました。
パブリック関数 Index() { $menuItems = メニュー::all(); return Inertia::render('メニュー', [ 'menuItems' => $menuItems ]); }
Route::get('menu',[MenuController::class,'index']);
CartController
input('id'); $menu = メニュー::find($menu_id); $cart=新しいカート(); $cart->table=$request->table; $cart->menus_id=$menu_id; $response=$cart->save(); } }
ここでは、menu.vue から返されたデータを保存する必要があります。 menu.vue
<スクリプトのセットアップ> import { Head } から '@inertiajs/vue3'; スクリプト> <テンプレート><ナビゲーションバー />
問題は、これがいつ呼び出されるかです
axios .post("/カート", { menu_id: item.id、 })
このエラーが発生しました: エラー
これは私の app.js です
axios インポート './ブートストラップ'; インポート '../css/app.css'; import { createApp, h } から 'vue'; import { createInertiaApp } から '@inertiajs/vue3'; import { replacePageComponent } から 'laravel-vite-plugin/inertia-helpers'; import { ZiggyVue } から '../../vendor/tightenco/ziggy/dist/vue.m'; const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel'; createInertiaApp({ title: (title) => `${title} - ${appName}`, solve: (name) =>solvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), setup({ エル、アプリ、小道具、プラグイン }) { return createApp({ render: () => h(App, props) }) .use(プラグイン) .use(ZiggyVue、ジギー) .mount(el); }、 進捗: { 色: '#4B5563'、 }、 });
これは私の app.blade.php
<メタ名="ビューポート"コンテンツ="幅=デバイス幅、初期スケール=1"" <タイトルの慣性>{{ config('app.name', 'Laravel') }} @ルート @vite(['resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"]) @慣性ヘッド @慣性 ボディ>
これはストレージ/ログ ファイルにあります[2023-02-08 16:39:49] local.ERROR: SQLSTATE[23000]: 整合性制約違反: 1048 列 'menus_id' を null にすることはできません (SQL:
カートに挿入 (
menus_id、
table、
updated_at、
;created_at ;) value(?, ?, 2023-02-08 16:39:49, 2023-02-08 16:39:49)) {"例外":"[オブジェクト] (Illuminate\\Database\ \QueryException(Code : 23000): SQLSTATE[ 23000]: 整合性制約違反: 1048 列 'menus_id' を null にすることはできません (SQL:
カート に INSERT (
menus_id,
;table,
updated_at,
created_at) value(?, ?, 2023-02-08 16:39:49, 2023-02-08 16 :39:49)) D:\Trinity\7th SEM\Project Work\smart_QR_based_restaurant\\Supplier\\laravel\\Framework\\src\\Illuminate\\Database\\ Connection.php:760) [スタックトレース] < /コード>
これはあなたの問題かもしれません、
このオブジェクトを投稿データとして渡します
リーリー次に、存在しないコントローラーの入力を呼び出します
リーリー$request->input('id')
は
である必要があります。$request->input('menu_id');
ただし、ログを再度チェックして、実際に発生したエラーを確認してください。
さらに、コントローラーに検証を追加して、渡した ID がテーブルに存在することを確認する必要があります
リーリー