2016-09-22 8 views
0

私はPHPには新しく、Slim Frameworkを使用して簡単なRest APIを開発しています。Slim FrameworkオプションのParamsルート

ドキュメントによると、SlimはFastRouteを使用しています。

私はそのようなオプションのparams(ベンダーと量)のルートを持っている:

path/items/{id}/{name}/{price}[/{vendor}[/{quantity}]] 

問題は、私はベンダーを残せばブランク値は、ベンダーに行くと量ではないということです満たされる。私は高速ルートではそれを達成できないことを理解しています。しかし、どうしたらいいですか?

  1. 高速ルートで行うことはできますか?
  2. スリムでもできますか?
  3. 私が欲しいものを達成できる別のフレームワークはありますか?
  4. クエリ文字列のみを使用する必要がありますか? (私はそれが答えだと思っていますが、私はもっと知識のある人から助けが必要です)。

ありがとうございます。

+0

私は数量の値が常に数値であると思いますか?そして、そのベンダーarentですか?または、ベンダーの価値はIDですか?両方に同じデータ型(文字列または整数)を含めることができれば、実行しようとしているようにすることはできません。ルータが値(10と言う)がベンダーIDか数量かどうかを知ることは不可能です。常にベンダーに送るのはなぜですか?そうではなく、なぜそのURLのすべての情報が必要なのでしょうか?あなたは最初のIDからそれを得ることができませんか? –

+0

IDなので、できません。どのようにこれらのパラメータを渡すことができますか?あなたは私に例やリンクをくれますか?ありがとう – Alan

+0

私は、オプションのパラメータで新しい項目を追加すると思います。どうしたらいいですか? – Alan

答えて

1

同じ種類で任意の順序で送信できるオプションのパラメータを使用する場合は、クエリ文字列を使用するか、省略する代わりに0などの値を追加する固定形式を使用できます。 「ベンダー」が設定されていない例:

/10/somename/15/0/12 

は、その後のパラメータはURL /ルートにはオプションではありませんが、あなたはparamはゼロであればちょうどそれらを無視して、代わりにあなたのコントローラでこれを処理することができます。

関連する問題