繁体   English   中英

数组到字符串的转换 laravel 5.6

[英]Array to string conversion laravel 5.6

    $data = $request->all();

    if (!empty($data))
    {
        foreach ($data as $key => $value)
        {
            if($key === "_token")
            {
                continue;
            }

            $val = [
                'questionnaire_id' => $questionnaire_id,
                'question_id' => $key,
                'answer' => $value
            ];

            $answer = Answer::create($val);
        }
    }

这是我的数组

    {
"_token": "URP1tlRfoD0RFMYIgVIyBX1AYaobDsQU2wnvxC1r",
"questionnaires_id": "5",
"questions": {
"2": "a",
"10": "3",
"11": "b",
"44": "2018-08-01"
}
}

这是我的模型课

class Answer extends Model
    {
        protected $fillable = [
            'questionnaire_id', 'question_id', 'answer'
        ];
    }

如果只想将数组转换为字符串,则应使用json_encode()等 php 函数

要将数组存储在 DB/Model 中,您可以执行以下操作:

protected $casts = [
    'answer' => 'array'
];

$answer可以是:

$answer = array($your_data);

像这样改变你的代码

    $qs = $request->questions;
    $qr = $request->questionnaires_id;
    foreach ($qs as $k => $q)
    {
        $val = [
            'questionnaire_id' => $qr,
            'question_id' => $k,
            'answer' => $q
        ];
        $answer = Answer::create($val);
    }

您应该遵循此流程。

$data = $request->all();

    if (!empty($data))
    {
        $questionnaires_id = 0;
        $questions = [];
        foreach ($data as $key => $value)
        {
            if($key === "_token")
            {
                continue;
            }

            if($key === "questionnaires_id")
            {
                $questionnaires_id = $value;
            }

            if($key === "questions")
            {
                $questions = $value;
            }
        }

         foreach ($questions as $key => $value) {
            $val = [
                'questionnaire_id' => $questionnaires_id,
                'question_id' => $key,
                'answer' => $value
            ];

            $answer = Answer::create($val);
         }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM