Symfony 2에서 요청 매개 변수를 얻는 방법은 무엇입니까?
나는 심포니를 매우 처음 본다.자바 등 다른 언어에서도 사용할 수 있습니다.request.getParameter('parmeter name')
가치를 얻기 위해서요.
symfony2로 우리가 할 수 있는 비슷한 것이 있나요?
나는 몇 가지 예를 보았지만 나에게 맞는 것은 하나도 없다.사용자 이름의 폼필드가 있다고 가정합니다.폼 액션에서는 다음과 같은 것을 사용하려고 했습니다.
$request = $this->getRequest();
$username= $request->request->get('username');
나도 해봤어
$username = $request->getParameter('username');
그리고.
$username=$request->request->getParameter('username');
하지만 어떤 옵션도 효과가 없습니다.다만, 다음의 조작은 정상적으로 동작했습니다.
foreach($request->request->all() as $req){
print_r($req['username']);
}
어디서 잘못 사용하고 있는 거죠?getParameter()
방법.어떤 도움이라도 주시면 감사하겠습니다.
이름은 그다지 직관적이지 않습니다.
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
// $_GET parameters
$request->query->get('name');
// $_POST parameters
$request->request->get('name');
2021년 11월 업데이트: $request->get('name')은 5.4에서 폐지되었으며 6.0부터 비공개입니다.오랫동안 사용이 권장되지 않았습니다.
더 간단하게 할 수 있습니다.
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
$foo = $request->get('foo');
$bar = $request->get('bar');
}
또 다른 옵션은 액션 함수 정의에 파라미터를 도입하는 것입니다.
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request, $foo, $bar)
{
echo $foo;
echo $bar;
}
그러면 routing.yml 파일에서 URL 패턴의 일부로 {foo} 및 {bar}을(를) 정의했다고 가정합니다.
acme_myurl:
pattern: /acme/news/{foo}/{bar}
defaults: { _controller: AcmeBundle:Default:getnews }
다음 코드를 사용하여 폼 필드 값을 가져올 수 있습니다.
use Symfony\Component\HttpFoundation\Request;
public function updateAction(Request $request)
{
// retrieve GET and POST variables respectively
$request->query->get('foo');
$request->request->get('bar', 'default value if bar does not exist');
}
또는 다음을 사용하여 모든 폼 값을 배열로 가져올 수도 있습니다.
$request->request->all()
해라
$request->request->get('acme_demobundle_usertype')['username']
공식 필드의 속성 이름 검사
컨트롤러 내부:
$request = $this->getRequest();
$username = $request->get('username');
지금처럼$this->getRequest()
메서드는 더 이상 사용되지 않습니다. 주입해야 합니다.Request
다음과 같이 컨트롤러 동작에 오브젝트를 적용합니다.
public function someAction(Request $request)
그 후 다음 중 하나를 사용할 수 있습니다.
요청에서 POST 데이터를 가져오려면 다음을 사용하십시오.
$request->request->get('var_name');
그러나 요청에서 GET 데이터를 가져오려면 다음과 같이 하십시오.
$request->query->get('var_name');
옵션:
- 심플:
$request->request->get('param')
($_POST['param']
) 또는$request->query->get('param')
($_GET['param']
)
- 모든 검증, 값 변환 및 폼 렌더링과 오류 및 기타 많은 기능이 포함된 Good Symfony 폼:
- 그 사이에 있는 것(아래 예 참조)
<?php
/**
* @Route("/customers", name="customers")
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$optionsResolver = new OptionsResolver();
$optionsResolver->setDefaults([
'email' => '',
'phone' => '',
]);
$filter = $optionsResolver->resolve($request->query->all());
/** @var CustomerRepository $customerRepository */
$customerRepository = $this->getDoctrine()->getRepository('AppBundle:Customer');
/** @var Customer[] $customers */
$customers = $customerRepository->findFilteredCustomers($filter);
return $this->render(':customers:index.html.twig', [
'customers' => $customers,
'filter' => $filter,
]);
}
상세 정보OptionsResolver
- http://symfony.com/doc/current/components/options_resolver.html
다음과 같이 할 수 있습니다.
$clientName = $request->request->get('appbundle_client')['clientName'];
Atribut이 보호되고 있는 경우, 일반적인 액세스 방법의 값을 취득할 수 없는 경우가 있습니다.
(POST)
$clientName = $request->request->get('clientName');
(가져오다)
$clientName = $request->query->get('clientName');
(일반)
$clientName = $request->get('clientName');
쿼리 문자열이나 양식 매개 변수를 가져오는 것과 같은 대부분의 사례는 위의 답변에서 다룹니다.
raw 데이터를 사용하는 경우, 예를 들어 본문 내의 raw JSON 문자열과 같은 경우json_decode()
메서드를 사용할 수 있습니다.
$content = $request->getContent();
Symfony의 HTTP 요청에 대한 추가 유용한 정보는 HttpFoundation 패키지의 문서에서 확인할 수 있습니다.
Symfony 4 사용자의 경우:
$query = $request->query->get('query');
$request = Request::createFromGlobals();
$getParameter = $request->get('getParameter');
use Symfony\Component\HttpFoundation\Request;
public function indexAction(Request $request, $id) {
$post = $request->request->all();
$request->request->get('username');
}
감사합니다. 위의 코드도 사용할 수 있습니다.
#www.dister/register/admin
/**
* @Route("/register/{role}", name="app_register", methods={"GET"})
*/
public function register(Request $request, $role): Response
{
echo $role ;
}
선택 항목에서 값을 가져오려면 다음을 사용할 수 있습니다.
$form->get('nameSelect')->getClientData();
이거 먹어봐, 효과가 있어
$this->request = $this->container->get('request_stack')->getCurrentRequest();
안부 전해요
public function indexAction(Request $request)
{
$data = $request->get('corresponding_arg');
// this also works
$data1 = $request->query->get('corresponding_arg1');
}
언급URL : https://stackoverflow.com/questions/9784930/how-to-get-the-request-parameters-in-symfony-2
'itsource' 카테고리의 다른 글
도커 컨테이너 내에서 호스트 시스템의 MySQL 데이터베이스 액세스 (0) | 2022.11.26 |
---|---|
요소는 (…의 경우) 루프에서 정렬됩니다. (0) | 2022.11.26 |
파이어베이스 콜백 내에서 vuejs 'this'에 액세스할 수 없는 이유는 무엇입니까? (0) | 2022.11.24 |
auto_increment id가 1개씩 증가하지 않는 이유는 무엇입니까?설정 방법은? (0) | 2022.11.24 |
부호 있는 정수에 대한 비트 연산 결과가 정의되어 있습니까? (0) | 2022.11.24 |