Symfony api-平台:用户应该检索他自己的实体
Symfony api-platform: user should retrieve his own entities
我有这个实体
/**
* @ApiResource()
* @ORM\Entity(repositoryClass="App\Repository\FeedRepository")
*/
class Feed implements AuthoredEntityInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="myFeeds")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="string", length=2083, unique=true)
*/
private $url;
// various getters and setters
}
使用我制作的 AuthoredEntityInterface 我可以自动将用户设置为登录用户。
我需要知道如何设置 collectionOperations,这样当我以 id = 1 的用户身份登录时,当我调用 /api/feeds 时,我将只检索 user = 1 的项目。如果这个有可能我想用注释来做到这一点,否则任何其他方法都可以。
谢谢。
如果只是连接用户,你需要的是当前用户扩展(doctrine extension)。否则,您需要创建一个“子资源”link。
Link 到 Extension, and to Subresource.
尽情享受 :)(感谢您的点评)
我有这个实体
/**
* @ApiResource()
* @ORM\Entity(repositoryClass="App\Repository\FeedRepository")
*/
class Feed implements AuthoredEntityInterface
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="myFeeds")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
/**
* @ORM\Column(type="string", length=2083, unique=true)
*/
private $url;
// various getters and setters
}
使用我制作的 AuthoredEntityInterface 我可以自动将用户设置为登录用户。
我需要知道如何设置 collectionOperations,这样当我以 id = 1 的用户身份登录时,当我调用 /api/feeds 时,我将只检索 user = 1 的项目。如果这个有可能我想用注释来做到这一点,否则任何其他方法都可以。
谢谢。
如果只是连接用户,你需要的是当前用户扩展(doctrine extension)。否则,您需要创建一个“子资源”link。
Link 到 Extension, and to Subresource.
尽情享受 :)(感谢您的点评)