2016-01-24 7 views
1

Мне нужно вызвать какой-то метод (GET, POST или PUT) в моем действии, как это сделать. Пример I имеет конечную точку PUTSymfony FosRest использовать конечную точку api

/** 
* Update existing Team from the submitted data or create a new Team. 
* 
* @ApiDoc(
* resource = true, 
* description = "Create/Update single Team", 
* parameters={ 
*  {"name"="name", "dataType"="string", "required"=false, "description"="image_back"} 
* }, 
* statusCodes = { 
*  200 = "Team successful update", 
*  400 = "Secret token is not valid" 
* }, 
* section="Team" 
*) 
* @RestView() 
* 
* @param Request $request 
* @param int  $id 
* 
* @return View 
*/ 
public function putTeamAction(Request $request, $id) 

и эта конечная точка имеет разгром «put_team». Как назвать это действие в другом контроллере, например, я называю POST сущности Свинец и в этот пост свинца мне нужно называть «put_team»:

/** 
* Post Lead. 
* 
* @ApiDoc(
* resource = true, 
* description = "Post lead", 
* parameters={ 
*  {"name"="title", "dataType"="string", "required"=true, "description"="title lead"}, 
* statusCodes = { 
*  200 = "Returned when successful", 
*  400 = "Returned secret token is not valid" 
* }, 
* section="Lead" 
*) 
* 
* @RestView() 
* 
* @param Request $request 
* 
* @return View 
* 
* @throws NotFoundHttpException when not exist 
*/ 
public function postLeadAction(Request $request) 
{ 

Если я пытаюсь это

return $this->redirect($this->generateUrl('put_team', array('id' => 31))); 

но называть получить методы, bacause URL получить и положить равные и, возможно, переадрессацию метод GET по умолчанию

Но мне не нужен возврат, мне нужно вызывать некоторый раут и по-прежнему работать в первом действии, используя ответ на разгроме «put_eam» стараюсь

$test = $this->redirect($this->generateUrl('put_team', array('id' => 31))); 

но имеют код состояния 302 и

в HTML Содержания с:

<body> 
    Redirecting to <a href="/app_dev.php/api/teams/31">/app_dev.php/api/teams/31</a>. 
</body> 

я использую это, но, как использовать, как это с помощью жрать?

function send_messages_aog($senders_token, $id, $title){ 

$url = BASE_URL.'/api/teams/'.$id; 

$data = array('senders_token' => $senders_token, 'title' => $title); 

$options = array(
    'http' => array(
     'method' => 'PUT', 
     'content' => json_encode($data), 
     'header'=> "Content-Type: application/json\r\n" . 
      "Accept: application/json\r\n" 
    ) 
); 

$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
$response = json_decode($result); 

return $response; 
} 

решаемые

Я использую жрать

public function updateTalent($userId, $token) 
{ 
    $guzzle = new Client(); 
    $putTeam = $guzzle 
     ->put($this->router->generate('put_developer', ['id' => $userId], UrlGeneratorInterface::ABSOLUTE_URL), 
      [], 
      json_encode([ 
       "token" => $token, 
      ]) 
     ) 
     ->send() 
     ->getBody(true); 
    $answer = json_decode($putTeam, true); 
    return $answer; 
} 

ответ

1

вы можете сделать HTTP запросы с PHP cURL или установить PHP HTTP-клиент, как Guzzle.

+0

Я обновляю свой вопрос, как использовать Guuzzle как я использую file_get_contents? –

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