ユーザーが該当するすべてのフィールドに値を入力した場合に正常に動作する外部APIにGETリクエストを送信しています。私はこれらのフィールドのすべてをオプションにしたいと思いますが、最初に応答を得るためにはもちろんです。ユーザーが値を入力していない場合、クエリ変数をHTTP GET要求から除外するにはどうすればよいですか?
リクエストからこれらを無視する簡単な方法がありますか?
これらは、私はこれが全体として混乱が、その非常に簡単に見えるかもしれリクエストで要求
$query = $request->input('query');
$include = $request->input('include');
$include2 = $request->input('include2');
$include3 = $request->input('include3');
$exclude = $request->input('exclude');
$exclude2 = $request->input('exclude2');
に渡すことになります変数です。ユーザは、基本成分をクエリとして入力し、包含または除外する特定の成分を入力することによって、それらのレシピ検索をさらに改良することができる。例えば、ユーザはこれだけで任意の助けのための2つの付属成分と1除外成分
$res = $client->get('http://api.yummly.com/v1/api/recipes?_app_id='MY_ID'&_app_key='MY_KEY'&q='.$query.'&allowedIngredient[]='.$include.'&allowedIngredient[]='.$include2.'&allowedIngredient[]='.$include3.'&excludedIngredient[]='.$exclude.'&excludedIngredient[]='.$exclude2.'&maxResult=50', ['auth' => ['user', 'pass']]);
$body = json_decode($res->getBody(), TRUE);
感謝を入力した場合、私は、この要求を渡す方法を知っているように思います。
UPDATE-ANSWER
$res = 'http://api.yummly.com/v1/api/recipes?_app_id=MY_ID&_app_key=MY_KEY&q='.$query;
if($include) {
$res .= '&allowedIngredient[]='.$include;
}
if($include2) {
$res .= '&allowedIngredient[]='.$include2;
}
if($include3) {
$res .= '&allowedIngredient[]='.$include3;
}
if($exclude) {
$res .= '&excludedIngredient[]='.$exclude;
}
if($exclude2) {
$res .= '&excludedIngredient[]='.$exclude2;
}
$res .='&requirePictures=true&maxResult=50';
$result = $client->get($res , ['auth' => ['user', 'pass']]);
$body = json_decode($result->getBody(), TRUE);
すべての '$ request-> input'でループを作成し、それに基づいてクエリを構築します。 –