Попытка напечатать значения в многомерном массиве, чтобы сформировать как предустановленные значения - PullRequest
0 голосов
/ 09 мая 2018

В настоящее время я работаю над проектом, в котором моя текущая цель - напечатать информацию о конкретном пользователе на входных данных формы окончательной проверки.

Прежде всего, я собираю информацию о конкретном пользователе через публичную функцию:

public function getUserAddress($dbh)
{
    $sql = "SELECT street, zip, city FROM address WHERE user_id=:user";
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(':user', $this->uid);
    $stmt->execute();
    $userAddress = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $this->userAddress = $userAddress;
    return $this->userAddress;
}

Затем я сохраняю информацию в переменной, которую я называю $ userAddress

$userAddress = $user->getUserAddress($dbh);

Поскольку у пользователя есть два адреса, оба с "улицей", "городом" и "почтовым индексом", я храню оба массива в $ templateData. Таким образом, я могу указать, какой индекс должен быть распечатан в каком входном теге, вместо того, чтобы создавать новую функцию для каждого слота.

$templateData['user']['address'] = $userAdress['street']." ".$userAddress['city']." ".$userAddress['zip'];

Однако распечатать их кажется почти невозможным. Когда я var_dump $ TemplateData [ 'пользователя'] [ 'адрес'] Кажется, я получаю только 2 пустых строки и ничего больше.

Это всего лишь код из моего Checkout.controller, но, похоже, информация не найдена на моей странице шаблона. Все маршруты и маршруты правильные, так что об этом.

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

Изображение того, как должна быть представлена ​​информация https://gyazo.com/40fa06832207bd785ee038af4962bb1e

Так что в этом случае: "Postort" = "Город" и "Gatuadress" = "Улица"

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

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

 $templateData['user']['address'][0]['street'] = $userAddress[0]['street'];
 $templateData['user']['address'][0]['city'] = $userAddress[0]['city'];
 $templateData['user']['address'][0]['zip'] = $userAddress[0]['zip'];

 $templateData['user']['address'][1]['street'] = $userAddress[1]['street'];
 $templateData['user']['address'][1]['city'] = $userAddress[1]['city'];
 $templateData['user']['address'][1]['zip'] = $userAddress[1]['zip'];

Я в основном ищу другое решение, которое не требует такого большого количества повторений.

0 голосов
/ 09 мая 2018

PDO::fetchAll(PDO::FETCH_ASSOC) вернет массив ассоциативных массивов; поэтому для доступа к отдельным элементам вам нужно что-то вроде:

 $userAdress[0]['street']." ".$userAddress[0]['city']." ".$userAddress[0]['zip']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...