Symfony api 平台使用控制器
Symfony api platform use controller
我在 symfony 4 中使用 api 平台,我有问题
我想知道如何使用 api 平台创建控制器并在 get
中创建 2 条路由
我告诉你我现在做了什么:
我的控制器:
/**
* @var UnedicPublicationOrderRepository
*/
private $publicationOrderRepository;
public function __construct(UnedicPublicationOrderRepository $publicationOrderRepository)
{
$this->publicationOrderRepository = $publicationOrderRepository;
}
public function __invoke()
{
$cible = $this->publicationOrderRepository->findAll();
return $cible;
}
和我的出版实体
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* UnedicPublicationOrderController
*
* @ApiResource(
* collectionOperations={"get"={"method"="GET"}},
* itemOperations={
* "get"={"method"="GET", "path"="/publication/{cible}"},
* }
* )
* @ORM\Table(name="foo")
* @ORM\Entity
要将特定控制器用于自定义操作,您需要将控制器添加为选项
use App\Controller\UnedicPublicationOrderController;
/**
* @ApiResource(
* itemOperations={
* "customGet"={
* "method"="GET",
* "path"="/publication/{cible}",
* "controller"=UnedicPublicationOrderController::class,
* },
* },
完整的例子可以在documentation
中看到
如果您的控制器 return 是一个集合,您需要在 collectionOperations 中添加路由,否则在 itemOperations 部分中注册它。
不要忘记在实体中导入控制器 class。
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Controllers\UnedicPublicationOrderController; // import controller
/**
* UnedicPublicationOrderController
*
* @ApiResource(
* collectionOperations={
"get"={"method"="GET"},
"get_publication_order"={
"path"="/publication_orders/all",
"method"="GET",
"controller"=UnedicPublicationOrderController::class
}
},
* itemOperations={
* "get"={"method"="GET", "path"="/publication/{cible}"},
* }
* )
* @ORM\Table(name="foo")
* @ORM\Entity
您还可以查看文档以获取更多示例creating-custom-operations-and-controllers
我在 symfony 4 中使用 api 平台,我有问题
我想知道如何使用 api 平台创建控制器并在 get
中创建 2 条路由我告诉你我现在做了什么:
我的控制器:
/**
* @var UnedicPublicationOrderRepository
*/
private $publicationOrderRepository;
public function __construct(UnedicPublicationOrderRepository $publicationOrderRepository)
{
$this->publicationOrderRepository = $publicationOrderRepository;
}
public function __invoke()
{
$cible = $this->publicationOrderRepository->findAll();
return $cible;
}
和我的出版实体
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* UnedicPublicationOrderController
*
* @ApiResource(
* collectionOperations={"get"={"method"="GET"}},
* itemOperations={
* "get"={"method"="GET", "path"="/publication/{cible}"},
* }
* )
* @ORM\Table(name="foo")
* @ORM\Entity
要将特定控制器用于自定义操作,您需要将控制器添加为选项
use App\Controller\UnedicPublicationOrderController;
/**
* @ApiResource(
* itemOperations={
* "customGet"={
* "method"="GET",
* "path"="/publication/{cible}",
* "controller"=UnedicPublicationOrderController::class,
* },
* },
完整的例子可以在documentation
中看到如果您的控制器 return 是一个集合,您需要在 collectionOperations 中添加路由,否则在 itemOperations 部分中注册它。 不要忘记在实体中导入控制器 class。
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Controllers\UnedicPublicationOrderController; // import controller
/**
* UnedicPublicationOrderController
*
* @ApiResource(
* collectionOperations={
"get"={"method"="GET"},
"get_publication_order"={
"path"="/publication_orders/all",
"method"="GET",
"controller"=UnedicPublicationOrderController::class
}
},
* itemOperations={
* "get"={"method"="GET", "path"="/publication/{cible}"},
* }
* )
* @ORM\Table(name="foo")
* @ORM\Entity
您还可以查看文档以获取更多示例creating-custom-operations-and-controllers