Laravel ->put() 问题 - 混合内容(JSON 与非 JSON)
P粉955063662
P粉955063662 2023-09-09 15:30:11
0
1
417

我在使用 Laravels put() 函数时遇到问题,因为我想将 JSON 内容放入这一单一场景中。

$datatable->GroupsCollection = $datatable->GroupsCollection->put($job, '{"grade":'.$grade.'}' );

但是当尝试创建“假”JSON 时,插入的值将是:{\"等级\":'VALUE_OF_$GRADE'}我尝试过使用str_replace()stripslashes()来删除反向斜杠,但没有 bueno。

我用谷歌搜索了一下,在模型中需要阅读一些关于演员表的内容。 所以我输入了这个:

protected $casts = [ 'dvalue' => 'array', ];

这会破坏代码的现有功能。

public function getGroupsCollectionAttribute() { return collect($this->dvalue ? $this->dvalue['groups'] : null); } public function setGroupsCollectionAttribute($value) { $currentValue = $this->dvalue ?? new Collection(); $this->dvalue['groups'] = $currentValue->$value; }

我“修复”了 get,但我不确定应该如何使用这个新的强制类型转换来格式化“set”函数并将其设置为数组。

值得注意的是,我们在数据库行中混合了内容,因此它并不总是 JSON。 有更简单的方法来解决这个问题吗?

P粉955063662
P粉955063662

全部回复 (1)
P粉002023326

通过简单地创建一个像这样的数组来修复它:

$grade_json = array("grade" => $grade); $datatable->GroupsCollection = $datatable->GroupsCollection->put($job, $grade_json);
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!