亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ErrorException:文件中未定義的數(shù)組鍵'名稱”
P粉187677012
P粉187677012 2023-08-31 10:33:00
0
1
672
<p>我正忙于客戶管理系統(tǒng),該系統(tǒng)還跟蹤客戶訂單。我已經(jīng)設(shè)置了一個(gè) CRUD API 來處理后端數(shù)據(jù)庫數(shù)據(jù)的讀寫,但是當(dāng)我嘗試將購物車數(shù)據(jù) POST 到數(shù)據(jù)庫時(shí),出現(xiàn)以下錯(cuò)誤。</p> <blockquote> <p>quote 從響應(yīng)中解析 JSON 時(shí)出錯(cuò):SyntaxError: 意外的標(biāo)記 '<', " 不是有效的 JSON</p> <p>接收以下內(nèi)容而不是有效的 JSON:<!-- ErrorException: 未定義的數(shù)組鍵 文件中的“名稱” C:\Users\mjver\OneDrive\Documents\Coding\client-api\routes\api.php 上 第238行</p> </blockquote> <p>我已將輸入數(shù)據(jù)檢查到客戶端的 $data["name"] 數(shù)組中,但看不到任何錯(cuò)誤。我已經(jīng)檢查了拼寫錯(cuò)誤和拼寫錯(cuò)誤以及所有這些,我希望一些新的眼睛可以提供幫助。</p> <p>我的前后端代碼片段如下:</p> <p>調(diào)用api.js中的API調(diào)用函數(shù):</p> <pre class="brush:php;toolbar:false;">async sendOrder(){ console.log(this.cart); const order = await APIController.CreateOrder(this.cart.name, this.cart.qty, this.cart.option, this.cart.price, this.orderNum, this.cart.fee, this.cart.date, this.id); if(order){ store.dispatch('clearCart'); } },</pre> <p>api.js 文件中的 API 調(diào)用:</p> <pre class="brush:php;toolbar:false;">CreateOrder: (name, qty, option, price, orderNo, fee, date, userId) => { let responseClone; const csrfToken = document.cookie.match(/XSRF-TOKEN=([^;]+)/)[1]; if( name == "" || qty == "" || option == "" || price == "" || orderNo == "" || date == "" || userId == "" ) { return false; } else { return fetch(API_BASE + "/orders/create", { method: "POST", headers: { "Content-Type": "application/json", "X-CSRF-TOKEN": csrfToken }, body: JSON.stringify({ name, qty, option, price, orderNo, fee, date, userId }) }).then((response) => { responseClone = response.clone(); return response.json() }) .then(data => { if(data.success){ alert("Order created successfully!") return true; } else { throw data.response.error; } }, (rejectionReason) => { console.log('Error parsing JSON from response: ', rejectionReason, responseClone); responseClone.text() .then((bodyText) => { console.log('Receiving the following instead of valid JSON: ', bodyText); }); }).catch(err => { alert(err); }); } },</預(yù)> <p>api.php文件中的php路由:</p>
Route::post('/orders/create', function(Request $request){
    $data = $request->all();

    if(!Orders::where('orderNo', '=', $data['orderNo'])->exists()){
        $order = 訂單::創(chuàng)建([
            “姓名” => $data[“名稱”],
            “數(shù)量” => $data[“數(shù)量”],
            “選項(xiàng)” => $data[“選項(xiàng)”],
            “訂單號(hào)” => $data[“訂單號(hào)”],
            “用戶ID” => $data[“用戶ID”],
            “價(jià)格” => $data[“價(jià)格”],
            “費(fèi)用” => $data[“費(fèi)用”],
            “日期” => $data[“日期”],
        ]);

        if(空($order->id)){
            返回 [
                “成功” =>錯(cuò)誤的,
                “響應(yīng)” => [
                    “錯(cuò)誤” => “發(fā)生了異常錯(cuò)誤”
                ]
            ];
        } 別的 {
            返回 [
                “成功” =>真的,
                “響應(yīng)” => [
                    “訂單” => $訂單
                ]
            ];
        }
    } 別的 {
        返回 [
            “成功” =>錯(cuò)誤的,
            “響應(yīng)” => [
                “錯(cuò)誤” => “庫存項(xiàng)目已存在”
            ]
        ];
    }
});</pre>
<p>我的訂單模型文件:</p>
class Orders 擴(kuò)展 Model
{
    使用 HasFactory;

    受保護(hù)的$可填充= [
        '產(chǎn)品',
        '數(shù)量',
        '選項(xiàng)',
        '訂單號(hào)',
        '用戶身份',
        '價(jià)格',
        '費(fèi)用',
        '日期',
    ];

    公共函數(shù)乘積 (){
        返回 $this->hasMany(Product::class);
    }
}</pre>
<p>如果您能幫助我解決這個(gè)問題,我將不勝感激,因?yàn)槲乙呀?jīng)為此苦苦掙扎了一段時(shí)間。</p>            
P粉187677012
P粉187677012

全部回復(fù)(1)
P粉543344381

我設(shè)法弄清楚了。我 console.log(this.cart.name) 并發(fā)現(xiàn)它是“未定義”。經(jīng)過進(jìn)一步調(diào)查,我發(fā)現(xiàn)原因是 state.cart 是一個(gè)對(duì)象數(shù)組,而不僅僅是一個(gè)對(duì)象。當(dāng)然,原因是購物車中的每個(gè)單獨(dú)的商品都應(yīng)該是它自己的對(duì)象。所以我的解決方案是:

for(let i = 0; i <= this.cart.length - 1; i++){
                try {
                    const order = await APIController.CreateOrder(this.cart[i].name, this.cart[i].qty, this.cart[i].option, this.cart[i].price, this.orderNum, this.cart[i].fee, this.cart[i].date, this.id);
                    if(order){
                        this.clearCart();
                    }
                } catch (error){
                    console.log(error);
                }
            }

分解:由于 this.cart 是一個(gè)數(shù)組而不是一個(gè)對(duì)象,我必須首先使用 for 循環(huán)來獲取購物車中每個(gè)項(xiàng)目的索引,然后調(diào)用將數(shù)據(jù)發(fā)布到數(shù)據(jù)庫的函數(shù)。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板