【问题标题】:Laravel Backpack: coordinates fieldLaravel 背包:坐标字段
【发布时间】: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
}

谢谢!

【问题讨论】:

    标签: php laravel laravel-backpack


    【解决方案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}的问题
    猜你喜欢
    • 2018-06-19
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2018-01-16
    • 2020-01-28
    • 1970-01-01
    相关资源
    最近更新 更多