Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php API REST SYMFONY细枝-认证_Php_Rest_Symfony_Twig - Fatal编程技术网

Php API REST SYMFONY细枝-认证

Php API REST SYMFONY细枝-认证,php,rest,symfony,twig,Php,Rest,Symfony,Twig,我正在使用symfony开发一个restapi,它将执行与用户、身份验证、列表、查看详细信息、创建等相关的任务 我已经获得了身份验证,但我有疑问,主要是关于细枝视图,因为我想集中这些视图,而不必在每个连接的系统中维护它们 我想集中的是: 查看用户详细信息 创建/编辑用户的视图 可以将这些视图放在API中吗?从API返回完整视图可以吗? 我该怎么做?因为它是以JSON格式返回的 我是从FOSRestController扩展而来。您可以执行一个操作,该操作将根据od参数返回JSON或HTML格式

我正在使用symfony开发一个restapi,它将执行与用户、身份验证、列表、查看详细信息、创建等相关的任务

我已经获得了身份验证,但我有疑问,主要是关于细枝视图,因为我想集中这些视图,而不必在每个连接的系统中维护它们

我想集中的是:

  • 查看用户详细信息
  • 创建/编辑用户的视图
可以将这些视图放在API中吗?从API返回完整视图可以吗? 我该怎么做?因为它是以JSON格式返回的


我是从FOSRestController扩展而来。

您可以执行一个操作,该操作将根据od参数返回JSON或HTML格式,因此,例如,您可以在移动应用程序中使用JSON格式,在某些web应用程序中使用HTML格式

可能的解决办法是:

public function userDetailAction($id, $format)
{
    ...
    ...

    if ($format == 'json') {
        $response = new Response(json_encode($data));
        return $response;
    }

    return $this->render('userDetail.twig', array('userData' => $data));
}
或者Symfony 3中更简单的json语法

...
if ($format == 'json') {
    return $this->json($data);
}
...

感谢@vini comment,我实现了以下内容:

...
$view = View::create(array('user' => $user))
          ->setTemplate("EdcorpUserBundle:User:advance.profile.html.twig")
          ->setFormat('html');

return $this->handleView($view);
}

ref:

我理解,您必须决定API客户端是使用HTML(您可以使用TWIG)还是JSON(在我看来,客户端负责如何显示任何内容),但需要更改控制器的“扩展”吗?我是从FOSRestController扩展而来的。就控制器而言,什么都没有。你有这些方法-setFormat,setTemplate等等。只要使用它们,你就会很好。看看文档:@Vini It奏效了,非常感谢,我将在下面评论我是如何实现它的。