2013-06-24 2 views
1

Я хотел бы знать, есть ли способ передать некоторые переменные (текст из текстового поля) из Twig в контроллер Symfony2 через форму.Как передать данные с ветки на контроллер Symfony2, используя форму

 <form action="{{ path('admin_core_save') }}" method="post"> 
      <div id="edit-template"> 
       {% if template.getData() is defined %} 
        <textarea id="template">{{ template.getData() }}</textarea> 
       {% endif %} 
      </div> 

      <input type="submit" value="Save" /> 
     </form> 

Когда я нажимаю кнопку сохранить это будет saveAction метод()

public function saveAction(Request $request) 
{ 
    var_dump($request); 

    return new Response('abc'); 
} 

но ответ не содержит какой-либо текст текстовой. Есть ли способ получить это там?

Я знаю, что могу построить форму внутри контроллера и отправить его Twig, но я хотел бы знать, возможен ли этот путь.

ответ

1

вы можете получить доступ к значениям POST через объект запроса, как:

$this->get('request')->request->get('name'); 
+0

, который сделал трюк, я забыл, что мне нужно положить имя = "abc" в мое текстовое поле! Спасибо за подсказку! – undefinedman

0

Я уверен, что вы должны узнать немного о Symfony2 Form Component. Вы обнаружите, что symfony уже имеет встроенную систему для обработки форм, обрабатывающих данные пользователя, размещенные через них.

Ответ на ваш вопрос. Существует объект Request, который предоставляет вам полный доступ ко всем данным запроса, включая переменные POST.

Для доступа значения POST использовать Request::get() метод:

$request->get('variable_name'); 

Чтобы передать какие-либо данные в шаблон веточку, используйте TwigEngine::renderResponse

$this->container->get('templating')->renderResponse('AcmeDemoBundle:Demo:template.twig,html', 
    array(
     'someVar' => 'some value' 
    ) 
); 

эта переменная будет доступен в шаблоне, как:

{{ someVar }} 
+0

Спасибо за это! Он также работает! Наконец, я могу получить свое переменное имя в контроллере. – undefinedman

+0

@GrzegorzTomasiak, если это вам помогло, пожалуйста, примите правильный ответ. – Hast

Смежные вопросы