1
我想通過令牌找到用戶。我有一對多的關係。我的教訓配置文件:Symfony3按關係搜索
AppBundle\UserEntity:
type: entity
table: null
repositoryClass: AppBundle\Repository\UserEntityRepository
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
username:
type: string
length: 255
unique: true
password:
type: string
length: 255
nullable: true
salt:
type: string
length: 255
unique: true
email:
type: string
length: '100'
lifecycleCallbacks: { }
oneToMany:
token:
targetEntity: TokenEntity
mappedBy: user
fetch: EAGER
AppBundle\TokenEntity:
type: entity
table: null
repositoryClass: AppBundle\Repository\TokenEntityRepository
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
value:
type: string
length: 255
unique: true
lifecycleCallbacks: { }
manyToOne:
user:
targetEntity: UserEntity
inversedBy: token
joinColumns:
user_id:
referencedColumnName: id
我想通過搜索用戶令牌:
UserEntityRepository.php
<?php
class UserEntityRepository extends EntityRepository
{
public function loadUserByToken(string $token)
{
$repository = $this->_em->getRepository('AppBundle:UserEntity');
$user = $repository->findOneBy(['token'=>1]);
return $user;
}
}
的Symfony拋出異常:
您不能搜索的相關領域 'AppBundle \ Entity \ UserEntity#token',因爲它是反面 一個關聯。查找方法僅適用於擁有邊關聯。
出了什麼問題?如何修復這種關係?用戶應該有幾個令牌。
你能幫我嗎?
這工作!我認爲,通過 - > findOneBy應該有效,但這種解決方案是好的。謝謝 ! – Matrix12