سلام دوستان من یه کد در لاراول دارم که خروجی آرایه ای داره ، می خواستم دوستان کمک کنن که خروجی json و آبجک از اون بگیرم
کد من به صورت زیر هست :
foreach ($data as $key => $id) {
$check_name[$key] = CheckList::whereId($id)->pluck('name');
}
return $check_name;
و خروجی کد بالا به صورت زیر است :
[
[
"کولرگازی"
],
[
"تلفن ثابت"
],
[
"گاز"
]
]
من می خوام این خروجی رو به صورت json بگیرم نه آرایه
بببینید شما هیچ وقت اینطوری نمیتونید درش بیارید
{
"کولرگازی" ,
"تلفن ثابت" ,
"گاز" ,
}
باید به شکل زیر عمل بفرمایید
[
"کولرگازی",
"تلفن ثابت",
"گاز"
]
برای تبدیل نتیجه کد شما به چیزی که من گفتم میتونید از حالت زیر استفاده بفرمایید
return response()->json(['errors' => 'no error', 'status' => '200', 'data' => collect($chunk)->collapse()], 200);
ببینید فرمت json یعنی یک رشته ! الان کدی که میفرمایید خیلی راحت مثل یک رشته در هر جای که بخواید قابل دسترس هست .
البته از json_encode هم میتونید استفاده بفرمایید.
یا لینک زیر رو مطالعه کنید
https://laravel.com/docs/6.x/eloquent-serialization#serializing-to-json
@hesammousavi
الان این خروجی برای api مناسب هست؟
برنامه نویس موبایل به من میگه خروجی حتما باید قالب زیر رو داشته باشه:
data : [ { }, { } ]
و از طرفی خروجی من همیشه { } اینجور بوده ، الان این برنامه نویس میگه حتما باید با [ ] شروع بشه ، میگه اگر با [ ] شروع نشه ، با جاوا قابل پردازش نیست !!!!
$record1['data'] = $record;
$record1['status'] = 'success';
echo json_encode($record1);
فرض کنین شما خروجیتون توی متغیر record$ باشه.
فکر کنم اینجوریم میتونین توی فرمتی که گفتین در بیارین!
ببینید الان خروجی متغیر check_name$ در کد زیر :
foreach ($data as $key => $id) {
$check_name[$key] = CheckList::whereId($id)->pluck('name');
}
return response()->json(['errors' => 'no error', 'status' => '200', 'data' => $check_name], 200);
خروجی آن به این صورت است:
{
"errors": "No Error",
"status": 200,
"data": [
[
"کولرگازی"
],
[
"تلفن ثابت"
],
[
"گاز"
],
]
}
من می خوام خروجی آن به این صورت باشد :
{
"errors": "No Error",
"status": 200,
"data": [
{
"کولرگازی" ,
"تلفن ثابت" ,
"گاز" ,
}
]
}
دوستان خواهش میکنم اگر نظر دارید ، حتما بیان کنید ، کارم خیییییلی گیره ، ممنون از همه
بببینید شما هیچ وقت اینطوری نمیتونید درش بیارید
{
"کولرگازی" ,
"تلفن ثابت" ,
"گاز" ,
}
باید به شکل زیر عمل بفرمایید
[
"کولرگازی",
"تلفن ثابت",
"گاز"
]
برای تبدیل نتیجه کد شما به چیزی که من گفتم میتونید از حالت زیر استفاده بفرمایید
return response()->json(['errors' => 'no error', 'status' => '200', 'data' => collect($chunk)->collapse()], 200);
اقای موسوی ممنون از راهنمایی کاربردی شما.
فکر میکنم در فهم بعضی از موضوعات دچار سردرگمی شدم ، میشه بفرمایید در چه موضوعاتی باید تحقیق کنم تا این موضوع رو به طور کامل درک کنم.
فکر میکنم در شی گرایی و آبجکت ها و آرایه ها و جیسون مشکل دارم ،
بازهم اگر شما راهنمایی کنید ممنون میشم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟