Здравствуйте, у меня возникли небольшие проблемы с массивами в моем приложении. В моей базе данных есть таблица под названием «контакты» внутри этой таблицы. У меня есть столбец «информация» типа данных «ТЕКСТ», где я храню массив в кодировке json. Это моя функция:
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(Request $request)
{
$contact = new Contacts;
$contact->type = $request->type;
$contact->name = str_replace(' ', ' ', $request->type == 'person' ? $request->first_name . ' ' . $request->other_name . ' ' . $request->last_name : $request->description);
$contact->email = $request->email;
$contact->info = json_encode($request->info);
if ($contact->save())
{
return [
'success' => 'Data was saved successfully!'
];
}
}
Теперь это прекрасно сохраняется, однако проблема в том, что когда я извлекаю данные из базы данных, он возвращает этот столбец как «строку», и поэтому я не могу получить доступ к этому массиву из моего внешнего JavaScript (я использую angular).
Я попробовал декодировать весь возвращаемый результат, но это не сработало, проблема осталась та же:
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$type = Input::get('type');
$contacts = "";
if (empty($type))
{
$contacts = Contacts::get();
}
elseif ($type == 'persons')
{
$contacts = Contacts::where('type', 'person')->get();
}
elseif ($type == 'companies')
{
$contacts = Contacts::where('type', 'company')->get();
}
return [
'contacts' => json_decode($contacts)
];
}
Подробнее здесь: https://stackoverflow.com/questions/324 ... ay-laravel