我正在开发一个拥有4级用户的api。管理员,经销商,渠道和客户。所有级别的呼叫率都存储在相应的_rate表中。
管理员可以查看所有用户级别的费率,经销商可以查看自己的费率以及所有渠道和客户,渠道本身及其客户等。
所以当经销商开火时:
api.dev/v1/call-rates
返回了tbl_reseller_rate,但是我希望能够指定我想查看的费率,例如
api.dev/v1/call-rates/channels
或
api.dev/v1/call-rates/customers
所以我可以这样做:
if (strpos($url,'channels') !== false)
{
flip to channel model;
} else if (strpos($url,'customers') !== false)
{
flip to customer model;
}
另一个要求是单独查看记录,以便url需要接受ID参数,如下所示:
api.dev/v1/call-rates/channel/1
任何帮助都会受到大力赞赏。提前致谢
答案 0 :(得分:2)
您应该像这样配置REST Url:
[
'POST v1/call-rates/<type>' => 'your_controller/call_rates',
'POST v1/call-rates/<type>/<id>' => 'your_controller/call_rates',
]
并在您的控制器文件中
public function call_rates($type, $id = null){
if(!in_array($type, ['customer','channels'])) {
// throw bad request exception here
}
// Do what ever you want with $type variable.
}
对于ID
路由,您可以更改它的方法,仅为示例我将其路由到控制器中的相同方法。
详情请见REST routes