Я новичок в силексе и ветке. Я хочу получить возвращаемое значение из функции и поместить его в шаблон моей ветки. Это мой код:
namespace classes;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$blogPosts = array(
1 => array(
'date' => '2011-03-29',
'author' => 'igorw',
'title' => 'Using Silex',
'body' => '...',
),
);
class GlobalController
{
public function indexAction(Application $app, Request $request)
{
$output = '';
foreach ($blogPosts as $post) {
$output .= $post['title'];
$output .= '<br />';
}
return $output;
}
}
Я хочу получить доступ к $ output и показать его в своем шаблоне. Я могу это сделать? потому что у меня есть другие подобные функции, и они извлекают данные из базы данных и возвращают их как значения, я хочу включить эти значения в шаблон. Возможно ли это?
Я пробовал их, но они не работали:
{{ GlobalController.output }}
{# Or #}
{{ GlobalController.indexAction.output }}
Обновление: я добавил это в свою маршрутизацию:
$app->get('/news/', function () use ($app) {
return $app['twig']->render('news.php.twig', array(
'output' => $output,
));
});
и он дал мне неопределенную переменную: уведомление о выходе.
спасибо
Когда вы закончите свой маршрут, вам нужно показать, какой шаблон ветки вы используете, и включить все переменные, которые вы хотите использовать в ветке:
return $app['twig']->render('some_template.twig', array(
'output' => $output,
));
Теперь вы можете получить доступ к переменной с помощью {{ output }}
$output
в обновленном коде. Там нет ничего, что даже упоминает об этом.