ErrorException: ファイル内に未定義の配列キー 'name' があります
<p>私は顧客の注文も追跡する顧客管理システムに取り組んでいます。バックエンド データベースからのデータの読み取りと書き込みを処理するために CRUD API を設定しましたが、ショッピング カート データをデータベースに POST しようとすると、次のエラーが発生します。 </p>
<ブロック引用>
<p>quote 応答からの JSON 解析エラー: SyntaxError: 予期しないトークン '<'、「 は有効な JSON ではありません</p>
<p>有効な JSON ではなく次のメッセージを受け取りました: <!-- ErrorException: 未定義の配列キー
ファイル内の「名前」
C:\Users\mjver\OneDrive\Documents\Coding\client-api\routes\api.php 上
238行目</p>
</blockquote>
<p>クライアントの $data["name"] 配列への入力データをチェックしましたが、エラーはありませんでした。誤字脱字などはチェックしましたが、新鮮な目でお役に立てれば幸いです。</p>
<p>フロントエンドとバックエンドのコード スニペットは次のとおりです。</p>
<p>api.js で API 呼び出し関数を呼び出します: </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(順序){
store.dispatch('clearCart');
}
},</pre>
<p>api.js ファイル内の API 呼び出し: </p>
<pre class="brush:php;toolbar:false;">CreateOrder: (名前、数量、オプション、価格、注文番号、料金、日付、ユーザー ID) => {
応答クローンを作成します。
const csrfToken = document.cookie.match(/XSRF-TOKEN=([^;] )/)[1];
もし(
名前 == "" ||
数量 == "" ||
オプション == "" ||
価格 == "" ||
注文番号 == "" ||
日付 == "" ||
ユーザー ID == ""
) {
false を返します。
} それ以外 {
return fetch(API_BASE "/orders/create", {
メソッド: "POST"、
ヘッダー: {
"Content-Type": "application/json"、
「X-CSRF-トークン」: csrfトークン
}、
body: JSON.stringify({ 名前, 数量, オプション, 価格, 注文番号, 料金, 日付, ユーザー ID })
}).then((応答) => {
応答Clone = 応答.clone();
応答.json() を返す
})
.then(データ => {
if(データ.成功){
alert("注文は正常に作成されました!")
true を返します。
} それ以外 {
data.response.error をスローします。
}
}, (拒否理由) => {
console.log('応答からの JSON 解析エラー: '、rejectionReason、responseClone);
応答Clone.text()
.then((bodyText) => {
console.log('有効な JSON の代わりに次のものを受信しています: ', bodyText);
});
}).catch(err => {
アラート(エラー);
});
}
}、</pre>
<p>api.php 文件中の php 路由:</p>
<pre class="brush:php;toolbar:false;">Route::post('/orders/create', function(Request $request){
$data = $request->all();
if(!Orders::where('orderNo', '=', $data['orderNo'])->exists()){
$order = 注文::create([
「名前」 => $data["名前"]、
「数量」 => $data["数量"],
「オプション」 => $data["オプション"]、
「注文番号」 => $data["注文番号"]、
「ユーザーID」 => $data["ユーザーID"]、
「価格」 => $data["価格"]、
「料金」 => $data["料金"]、
「日付」 => $data["日付"]、
]);
if(empty($order->id)){
戻る [
「成功」 =>間違い、
「応答」 => [
「エラー」 => 「異常なエラーが発生しました」
】
];
} それ以外 {
戻る [
「成功」 =>真実、
「応答」 => [
「注文」 => $order
】
];
}
} それ以外 {
戻る [
「成功」 =>間違い、
「応答」 => [
「エラー」 => 「在庫品目はすでに存在します」
】
];
}
});</pre>
<p>我的订单モデル文件:</p>
<pre class="brush:php;toolbar:false;">クラスの順序はモデルを拡張します
{
HasFactoryを使用します。
protected $fillable = [
'製品'、
「数量」、
'オプション'、
'注文番号'、
'ユーザーID'、
'価格'、
'手数料'、
'日付'、
];
公共機能積 (){
return $this->hasMany(Product::class);
}
}</pre>
</p>この問題を解決するのに役立つのであれば、私はあまり感情を起こさないでしょう。なぜなら、私はこれまでにある程度の苦しみを経験しているからです。