[英]How to return JSON string value of property in array as JSON array in laravel
我將JSON字符串存儲在MySQL表的列中。 當我嘗試通過API將列數據作為php / json數組返回時,它仍然是字符串。
這是我的代碼,它返回一個問題數組,並且在每個問題對象中,我都將options array作為JSON stringify。 但是,當它返回時,我不希望將選項字符串化。
public function getQuestions($id, Request $request)
{
// return $id;
$questions = Question::where('quiz_id', $id)->orderByRaw("RAND()")->get();
$questions->makeHidden(['ans']);
// $questions->toJson(['options']);
// $questions['options'] = json_encode(questions['options']);
return $questions;
}
這樣返回。
[
{
"id": 100000008,
"quiz_id": 10000,
"title": "কোন বানানটি সঠিক?",
"options": "[\"কলসি\",\"কলসই\",\"কলশি\",\"কলশী\"]",
"answer": 1
},
{
"id": 100000009,
"quiz_id": 10000,
"title": "কোন বানানটি সঠিক?",
"options": "[\"ঠোট\",\"ঠোঁট\",\"থট\",\"কোনটি নয়\"]",
"answer": 2
}
]
但是我想要這樣:
[
{
"id": 100000008,
"quiz_id": 10000,
"title": "কোন বানানটি সঠিক?",
"options": ["কলসি","কলসই","কলশি","কলশী"],
"answer": 1
},
{
"id": 100000009,
"quiz_id": 10000,
"title": "কোন বানানটি সঠিক?",
"options": ["ঠোট","ঠোঁট","থট","কোনটি নয়"],
"answer": 2
}
]
我剛剛添加了$ casts將字符串轉換為數組
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
protected $table = 'question';
protected $fillable = [
'quiz_id',
'title',
'opt1',
'opt2',
'opt3',
'opt4',
'ans',
'options',
'answer'
];
protected $casts = [
'options' => 'array',
];
public function quiz()
{
return $this->belongsTo('App\Quize', 'quiz_id' , 'id');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.