2016-12-09 9 views
-2

フォームビルダーsymfonyでクライアントIPアドレスを取得するには?クライアントIPを取得symfony3

私は、誰かが使用している現在のクライアントのIPアドレスを取得し、データパラメータにそれを置きたいクラスCompanyType.php(AppBundle /フォーム/ CompanyType.php)

$builder->add('ip', TextType::class, array(
    'label'=> 'IP Address', 
    'data' => '127.0.0.1' 
)); 

を持っています。それ、どうやったら出来るの?

答えて

2

私は、これは動作するはずと信じています:

$ip = $this->request->getClientIp(); 
if($ip == 'unknown'){ 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 

getClientIp()機能が設定されていない可能性X-Forwarded-Forヘッダ、探します。そうでなければ、他のPHPページのように、$_SERVER変数からIPアドレスを取得することができます。

http://api.symfony.com/master/Symfony/Component/HttpFoundation/Request.html#method_getClientIp

+0

こんにちは、私はエラーが表示さSwipeBundle \フォーム\ CompanyTypeを:: $要求 – phpmeter

+0

は、あなたが使用している場合、それは動作しません: ' $ ip = $ _SERVER ['REMOTE_ADDR'] '? – varlogtim

+0

いいえ、私のFormTypeの要求はありませんので、動作しません。 – phpmeter

0

コントローラ内の正しい方法は次のとおりです。未定義のプロパティ:

use Symfony\Component\HttpFoundation\Request; 

.... 

public function myMethodAction(Request $request) 
{ 
    $ip = $request->getClientIp(); 
    ..... 

} 
関連する問題