Передача переменной цикла smarty foreach в php-код

У меня есть цикл foreach в smarty:

{foreach from=$clients item=client}
    <tr class="{cycle values="erow,"} elements">
        <td class="tdcenter no-label">{$client->id}</td>
        <td>{$client->name}</td>
        <td>{$client->email}</td>
        <td>{$client->phone}</td>
        <td>{php} echo get_client_profit($client->name);{/php}</td>
    </tr>
 {/foreach}

I need to pass smarty variable {$client->name} to PHP function get_client_profit. How should I do that? Is it possible?

0
nl ja de
@Lina, что произойдет, если вы просто выполните {get_client_profit ($ client-> name)} ?
добавлено автор shawndreck, источник
просто интересно, является ли $ client массивом или объектом? Если массив, то вы должны использовать $ client.name. Если это объект, то, возможно, попытайтесь присвоить переменную $ client-> переменной, прежде чем передавать ее функции
добавлено автор shawndreck, источник
Является ли добавление get_client_profit в качестве плагина шаблона Smarty )? smarty.net/best_practices (# 1)
добавлено автор Terry Seidler, источник
@shawndreck он просто ничего не пропускает, если я пишу {get_client_profit ('test')}, он работает. :)
добавлено автор Lina, источник

2 ответы

Я сделал это на своей машине разработки, и он работает:

{foreach from=$clients item=client}
<tr class="{cycle values="erow,"} elements">
    <td class="tdcenter no-label">{$client->id}</td>
    <td>{$client->name}</td>
    <td>{$client->email}</td>
    <td>{$client->phone}</td>
    <td>{get_client_profit($client->name)}</td>
 </tr>
 {/foreach}

Просто вызовите функцию без тегов {php}

0
добавлено

Попробуй это :

{foreach from=$clients item=client}
    <tr class="{cycle values="erow,"} elements">
        <td class="tdcenter no-label">{$client->id}</td>
        <td>{$client->name}</td>
        <td>{$client->email}</td>
        <td>{$client->phone}</td>
        <td>
{assign var="clientname" value=$client->name }
{php} echo get_client_profit($smarty->get_template_vars('clientname'));{/php}</td>
        </tr>
     {/foreach}
0
добавлено
Это возвращает синтаксическую ошибку: Ошибка синтаксиса: синтаксическая ошибка, неожиданные ';', ожидающие ')'
добавлено автор Lina, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp