Laravel 背包:坐标字段

Posted

技术标签:

【中文标题】Laravel 背包:坐标字段【英文标题】:Laravel Backpack: coordinates field 【发布时间】:2020-09-22 12:50:16 【问题描述】:

我有一个名为 map_box 的字段,其中包含坐标(参见下面的示例),不能用作字符串。

以前,在 Backpack 之前,我使用将字段转换为数组 'map_box' => 'array',结果如下:注意坐标不是字符串

[
    -73.661,
    45.589
],

现在,我试图达到相同的结果,但我不断得到一个字符串数组。我尝试使用 repeatable 字段和 numbers 字段,但数字是字符串。我也尝试强制转换字段,然后使用 text 字段,但这会返回错误(因为表单需要字符串而不是数组)。

我的目标是能够在 CRUD 控制器中编辑此字段,同时能够在我的 API 中以正确的格式为它们提供服务。关于如何获得与上述相同结果的任何想法?如果可能的话,我也可以使用以下格式:


   lon: -73.661,
   lat: 45.589

谢谢!

【问题讨论】:

【参考方案1】:

我不确定我是否理解正确......背包与这个选角有什么关系?

但是如果你有类似的东西:

$value='"max_box":lon: -73.661, lat: 45.589';

或任何字符串,你想得到正数或负数的浮点数,你可以使用这个:

 preg_match_all('/-?\d+\.\d+/', $value, $matches);

$matches[0] 将是您的数字数组

【讨论】:

不,我想在后端 CRUD 控制器中编辑此字段。我已经对我的问题进行了更改,以使其更清楚。由于我的 api 的处理方式,我真的需要坚持这种格式。 这个字段的列类型是什么? 这是一个字符串,但如果需要我可以更改它 它应该是json,所以repeatable可以处理它 即使使用JSON,我仍然有坐标保存为字符串而不是浮动"lat": "45.589", "lon": "-82.661"而不是"lat": 45.589, "lon": -73.661的问题

以上是关于Laravel 背包:坐标字段的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 背包 select2_multiple 无法正确显示

重定向到其他模型的创建视图的 Laravel 背包按钮

laravel - 背包 - addFilter 自定义查询

在 Laravel 背包上覆盖 RegisterController

Laravel - 背包选择依赖于另一个选择

如何打开Laravel背包管理页面?