如何在laravel中将数组中属性的JSON字符串值返回为JSON数组

我将 JSON 字符串存储在 MySQL 表的一列中。当我尝试通过 API 将该列数据作为 php/json 数组返回时,它仍然是一个字符串。


这是我的代码,它返回一个问题数组,在每个问题对象中,我都将 options 数组作为 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

    }

]


qq_花开花谢_0
浏览 120回答 1
1回答

慕沐林林

我刚刚添加了 $casts 将字符串转换为数组<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Question extends Model{&nbsp; &nbsp; protected $table = 'question';&nbsp; &nbsp; protected $fillable = [&nbsp; &nbsp; &nbsp; &nbsp; 'quiz_id',&nbsp; &nbsp; &nbsp; &nbsp; 'title',&nbsp; &nbsp; &nbsp; &nbsp; 'opt1',&nbsp; &nbsp; &nbsp; &nbsp; 'opt2',&nbsp; &nbsp; &nbsp; &nbsp; 'opt3',&nbsp; &nbsp; &nbsp; &nbsp; 'opt4',&nbsp; &nbsp; &nbsp; &nbsp; 'ans',&nbsp; &nbsp; &nbsp; &nbsp; 'options',&nbsp; &nbsp; &nbsp; &nbsp; 'answer'&nbsp; &nbsp; ];&nbsp; &nbsp; protected $casts = [&nbsp; &nbsp; &nbsp; &nbsp; 'options' => 'array',&nbsp; &nbsp; ];&nbsp; &nbsp; public function quiz()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return $this->belongsTo('App\Quize', 'quiz_id' , 'id');&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP