Cro*_*end 1 php api symfony api-platform.com
我在 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;
}
Run Code Online (Sandbox Code Playgroud)
和我的发布实体
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
Run Code Online (Sandbox Code Playgroud)
如果您的控制器返回一个集合,您需要在 collectionOperations 中添加路由,否则在 itemOperations 部分中注册它。不要忘记在实体中导入控制器类。
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
Run Code Online (Sandbox Code Playgroud)
您还可以查看文档以获取更多创建自定义操作和控制器的示例
| 归档时间: |
|
| 查看次数: |
11333 次 |
| 最近记录: |