php - 在 Laravel/PHP 中将多项选择转换为数组,返回 Err:Array 到字符串转换
问题描述
我正在尝试使用 Laravel 创建一个小型披萨订购应用程序,这个问题的目的是将浇头添加到名为 toppings 的 SQL 列中。
除了浇头外,一切都按预期工作。如果用户选择要添加的多个浇头,则需要将选项组合成一个数组,然后组合成一个 toppings sql 列中的字符串值。我关注的资源显示了他们的 mySQL 表:
请注意最后一列 [toppings],选择了一系列配料。
我试图自己合并它,我还查看了其他资源并将它们跟踪到“T”,但问题仍然存在。
我必须说一切正常,只是浇头没有。
我已经截取了屏幕截图,因为我相信它会更容易理解。
这是 webform 布局,为每个顶部复选框指定了 toppings[array]。迁移:
正如我们所见,已为浇头指定了 json。
比萨控制器:
我要求已选择的浇头。
根据我正在关注的资源,图5似乎是问题所在。当我走上披萨/创建路线时,输入名称并选择一些配料,如图所示。
注意:即使您选择单个顶部,下一个错误也会出现。
如果有人有任何想法,我不确定如何解决这个问题。我将不胜感激,如果需要更多信息,请告诉我。
先感谢您。
解决方案
解决方案取决于 laravel 版本,但尝试添加一个 mutator 来保存浇头:
/**
* Set the pizza's toppings.
*
* @param string $value
* @return void
*/
public function setToppingsAttribute($value)
{
$this->attributes['toppings'] = json_encode($value);
}
推荐阅读
- java - JAXB java object to xml,创建 Pascal Case XML 元素
- c# - 库方法:异步与否?
- string - Powershell 中的部分替换
- azure-devops - 为什么在尝试设置新项目时收到操作失败错误?
- c# - 当 IEnumerator 作为变量传递时,Unity 'StartCoroutine' 不会运行两次?
- javascript - Node.js 数据表编辑器 - 多列的自定义/唯一验证
- excel - 删除在另一个单元格中找到的单元格中的值
- marklogic - MarkLogic 无法将变量分配给 cts:document-query()
- c# - 关闭编译器优化?我用于评估算法顺序的 C# 代码返回 logN 或 N^3 而不是 N 用于简单循环
- sql-server - 需要使 NULL=Value 评估为 TRUE