私はsymfonyにとても不慣れです。 Javaなどの他の言語では、値を取得するために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');
もっと簡単にします。
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');
あなたのオプション:
$request->request->get('param')
($_POST['param']
)または$request->query->get('param')
($_GET['param']
)<?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
$this->getRequest()
メソッドは推奨されなくなったので、Request
オブジェクトをコントローラのアクションに次のように挿入する必要があります。
public function someAction(Request $request)
その後は、次のいずれかを使用できます。
リクエストからPOSTデータを取得したい場合は、次のようにします。
$request->request->get('var_name');
しかし、リクエストからGETデータを取得したい場合はこれを使用してください。
$request->query->get('var_name');
これを行うことができます:
$clientName = $request->request->get('appbundle_client')['clientName'];
場合によっては、属性が保護されていると、一般的なアクセス方法の値を取得することができなくなります。
(役職)
$clientName = $request->request->get('clientName');
(取得する)
$clientName = $request->query->get('clientName');
(一般)
$clientName = $request->get('clientName');
クエリ文字列やフォームパラメータの取得などのほとんどの場合は、上記の回答で説明されています。
生のデータを扱うとき、json_decode()
の引数として渡したい本体の生のJSON文字列のように、メソッド Request::getContent()
を使うことができます。 。
$content = $request->getContent();
SymfonyのHTTPリクエストに関するその他の役に立つ情報は HttpFoundation パッケージのドキュメントにあります。
use Symfony\Component\HttpFoundation\Request;
public function indexAction(Request $request, $id) {
$post = $request->request->all();
$request->request->get('username');
}
ありがとう、あなたはまた上記のコードを使うことができます
$request = Request::createFromGlobals();
$getParameter = $request->get('getParameter');
これを試してください、それは働きます
$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');
}
Symfony 4ユーザーの場合:
$query = $request->query->get('query');
選択から値を取得する必要がある場合は、次のものを使用できます。
$form->get('nameSelect')->getClientData();