#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 кому-то, кто, похоже, не понимает основ, таких как доступ к значениям в довольно простом массиве, не кажется мне хорошим советом