我正在使用Symfony 3.1和Doctrine 2.5.
我像往常一样设置了很多ToMany关系:
manyToMany:
placeServices:
targetEntity: Acme\MyBundle\Entity\PlaceService
joinTable:
name: place_place_service
joinColumns:
place_id:
referencedColumnName: id
inverseJoinColumns:
place_service_id:
referencedColumnName: id
Run Code Online (Sandbox Code Playgroud)
并向我的实体添加方法
protected $placeServices;
...
public function __construct()
{
$this->placeServices = new ArrayCollection();
}
...
/**
* @return ArrayCollection
*/
public function getPlaceServices(): ArrayCollection
{
return $this->placeServices;
}
/**
* @param PlaceServiceInterface $placeService
* @return PlaceInterface
*/
public function addPlaceService(PlaceServiceInterface $placeService): PlaceInterface
{
if(!$this->placeServices->contains($placeService)) {
$this->placeServices->add($placeService);
}
return $this;
}
/**
* @param PlaceServiceInterface $placeService
* @return PlaceInterface
*/
public function removePlaceService(PlaceServiceInterface …Run Code Online (Sandbox Code Playgroud) 仅当具有相同电子邮件的用户不存在时,我才想将新用户插入到我的数据库中.
因此,我有两个Observable:第一个使用特定电子邮件发出用户或完成而不发出任何内容.第二个Observable插入一个新用户并返回这个新创建的用户的Object.
我的问题是,我不希望第一个Observable(如果存在)所传递的用户被传输到订阅服务器.相反,我想将它映射到null).
Observable<UserViewModel> observable =
checkAndReturnExistingUserObservable
.map(existingUser -> null)
.firstOrDefault(
insertAndReturnNewUserObservable
.map(insertedUser -> mMapper.map(insertedUser)
)
Run Code Online (Sandbox Code Playgroud)
这是我尝试的最后一件事,但它在第二个地图操作员处说"循环推理".
总结一下.我想只在第一个完成空的情况下执行第二个Observable,但如果不是我不想首先返回数据,而不想返回null.
任何帮助都非常感谢.