foreach php-smarty помогите - PullRequest
       14

foreach php-smarty помогите

0 голосов
/ 10 сентября 2011

У меня есть скрипт php:

$sql = "
        SELECT
            *
        FROM
            tbl_messages
        WHERE
            msg_sender_id = '$this->UM_index'
    ";
    $res = $this->db->returnArrayOfObject($sql);
    $this->assign_values('sent_messages',$res);

И в шаблонах, которые я нашел:

{foreach name = feach key = indx item = k from = $sent_messages}
{$k->msg_sender_id}
{$k->msg_subject}
{/forach}

Я могу получить два вышеуказанных поля. Но я хочу получить message_sender_name для поля sender_id, которое можно получить из функции getDetails($id).

Мой вопрос: как я могу назначить поля sender_name (которые являются массивом) моему шаблону smarty?

1 Ответ

1 голос
/ 10 сентября 2011

Итак, вы также хотите иметь возможность иметь message_sender_name, которое возвращается функцией getDetails ($ id)?

Вам придется циклически перебирать результаты и извлекать message_sender_name для каждой строки,Примерно так:

$arrResults = array();
while ($res = $this->db->returnArrayOfObject($sql)))
{
  $res['msg_sender_name'] = getDetails($res['msg_sender_id']);
  $arrResults[] = $res;
}
$this->assign_values('sent_messages',$arrResults);

Если я прав, теперь вы можете получить доступ к sender_name через {$k->msg_sender_name} в вашем файле шаблона.

Но я бы предложил использовать JOINв вашем SQL-выражении, поэтому вам не нужно делать еще один запрос на имя отправителя.

...