我是Slim和PHP的新手,但我试图用Slim做一个简单的休息API。它正在工作,但我不知道我是否以正确的方式做到这一点,我找不到其他办法。
例如,我有这样的路线:
$app->get('/contacts', '\Namespace\Class:method');
方法:
public function searchContacts($request, $response) {
return Contact::searchContacts($resquest, $response);
}
因此,我发现从其他类访问请求和响应的独特方法是将对象作为参数传递。它是正确的还是有更好的(正确的)方法呢?
答案 0 :(得分:2)
我认为你的方式并不好。
控制器应处理请求并返回响应。
您的模型(Contact
)应该处理请求。它应该采取所需的参数并返回数据。
简单示例:
public function searchContacts($request, $response)
{
// to example, you pass only name of contact
$results = Contact::searchContacts($request->get('contactName'));
$response->getBody()->write(json_encode($results));
return $response;
}
您无需访问其他课程中的Request
和Response
个对象。如果需要,可能您的架构是错误的。
来自官方网站的好例子:http://www.slimframework.com/docs/tutorial/first-app.html#create-routes
答案 1 :(得分:0)
最简单的方法是从params获取值并在方法中收到响应。
$app->get('/contacts', function (Request $request, Response $response) {
$Contactname = $request->getAttribute('contact');
//You can put your search code here.
$response->getBody()->write("Contact name is, $name");
return $response;
});