В бд есть поле типа longtext, в него записан массив такого типа
[[[73.159332,49.912499],[73.161736,49.91781],[73.166199,49.912278],[73.159332,49.912499]]]
Вопрос в том, как мне получить этот массив не в текстовом виде, а в виде массива
Вот так:
"geometry": {
"id": 7,
"coordinates": [[[73.159332,49.912499],[73.161736,49.91781],[73.166199,49.912278],[73.159332,49.912499]]],
"id_zone": 1
}
А не как сейчас:
"geometry": {
"id": 7,
"coordinates": "[[[73.159332,49.912499],[73.161736,49.91781],[73.166199,49.912278],[73.159332,49.912499]]]",
"id_zone": 1
}
В вашу модель : App\User.php (или любую другую)
Необходимо дописать преобразователь - eloquent-mutators
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Атрибуты, которые должны быть преобразованы к базовым типам.
*
* @var array
*/
protected $casts = [
'options' => 'array',
];
}
Из статьи на русском языке есть преобразователь $casts, который приведет ваш атрибут к нужному типу.
В вашем случае
protected $casts = [
'coordinates' => 'array',
];
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости