Проблема Laravel с массивом данных из базы данных

#php #arrays #database #laravel

#php #массивы #База данных #laravel

Вопрос:

Я не могу понять, как назначать переменные в контроллере из массива с данными базы данных.

эта строка:

  $user = User::where('id', $id)->first()->toArray();
  

dd($user) верните это :

 array:3[
    "id"=> 1
    "name"="John"
    "surname"="Wick"
]
  

как можно назначить переменные из массива?

  $fullName = $name . $surname;
  

Комментарии:

1. Вы пробовали это: $fullName = $user['name']." ". $user['surname']; ?

2. Посмотрите, что говорит ваш код. В нем говорится user , что запись превращается в массив, в котором она хранится $user . Когда вы dd($user) говорите, array и показывает его ключи и значения. Вот почему это $user['name']

3. Это должно быть сделано с помощью мутаторов .

Ответ №1:

Вы можете использовать extract для извлечения ключей массива в качестве переменных PHP.

 <?php

$user = User::where('id', $id)->first()->toArray();

extract($user);

$fullName = $name . " " . $surname;
 
echo $fullName;
  

Демонстрация: https: //3v4l.org/1IRRF

Комментарии:

1. Зачем вам нужно использовать extract, когда в этом случае вы могли бы просто получить доступ к $user[«имя»] и $user [«фамилия»] ?

2. @docl Я бы сказал, что это выбор разработчика, и иногда это полезно, если ваша бизнес-логика будет слишком длинной. Это делает ваш код менее подробным.

3. Если честно, рекомендовать использовать extract кому-то, кто, похоже, не понимает основ, таких как доступ к значениям в довольно простом массиве, не кажется мне хорошим советом