为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
qq_花开花谢_0 2021-10-15 15:47:37
我将 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    }]
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

我刚刚添加了 $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');

    }

}


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信