@antonio0226

Как правильно вывести данные в шаблон?

Убиваеюсь Laravel ом уже 3 день.
В данный момент в бд храниться вот такой ответ:
[["c"],["b"],["a"],["a"],["c"],["b"],["b"],["b"],["c"],["a"],["b"],["b"],["c"],["c"],["c"],["c"],["b"],["b"],["b"],["a"],["c"],["c"],["c"],["c"],["a"],["c"],["c"],["a"],["a"],["a"],["b"],["a"],["b"],["b"],["b"],["a"],["a"],["a"],["b"],["b"],["b"],["a"],["c"],["b"],["a"],["b"],["b"],["a"],["c"],["b"],["b"],["b"],["a"],["a"],["b"],["c"],["a"],["c"],["a"],["a"],["b"],["b"],["c"],["a"],["a"],["c"],["c"],["a"],["a"],["b"],["c"],["b"],["a"],["b"],["c"],["b"],["b"]]

Поместил я его туда вот таким способом:
Answer::create([
                    'name' => $request->name,

                    'answer' => json_encode($answers), // Вот он

                    'a' => $answer_a,
                    'b' => $answer_b,
                    'c' => $answer_c,
                ]);

Как мне его теперь передать в вид, что бы можно было получить доступ к каждой ячейке ?
Пробовал вот так
$name = Answer::select('name')->get();
        $answers = json_decode(Answer::select('answer')->get()[0], true);
        return view('home')->with(['name' => $name, 'answers' => $answers]);

В html пытался так
<li>{{ $answers[3] }}</li>
В итоге получал каждый символ, т.к сначала скобку потом скобку кавычку и т.д
Как мне это все реализовать ? 5ae346e850514234969898.png
Вот такого вида таблица.
Данные будут пополняться и нужно выводить инфу в админке.....
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Yan-s
https://laravel.ru/docs/v5/eloquent-mutators#%D0%B...

Выполнять json_encode и json_decode при этом не требуется.

в этой строке
$answers = json_decode(Answer::select('answer')->get()[0], true);

вы получаете экземпляр модели а не поле answer. Во первых надо избавиться от json_decode, во вторых, требуемое поле у вас будет лежать в $answers->answer

Отлаживайте код, чтобы понимать что находиться в ваших переменных, используйте дебагер или дампы при помощи функций dump() и dd()

вместо
return view('home')->with(['name' => $name, 'answers' => $answers]);

используйте
return view('home', ['name' => $name, 'answers' => $answers]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы