Php Symfony-从其他实体传递数据

Php Symfony-从其他实体传递数据,php,mysql,api,symfony,Php,Mysql,Api,Symfony,我想在用户实体内设置我的注册呼叫 注册呼叫应接收国家实体中字段的iso代码。 系统将根据iso代码查找国家,并在用户界面中进行设置。 所以,用户中的国家和国家实体是相关的 当它应该返回某个值时,它将返回null 我的注册api调用 public function registerUser($country) { $user = new User(); $country = $this->findCountry(['iso']); $user->setCou

我想在用户实体内设置我的注册呼叫 注册呼叫应接收国家实体中字段的iso代码。 系统将根据iso代码查找国家,并在用户界面中进行设置。 所以,用户中的国家和国家实体是相关的

当它应该返回某个值时,它将返回null

我的注册api调用

 public function registerUser($country)
{
    $user = new User();

    $country = $this->findCountry(['iso']);
    $user->setCountry($country);

    $this->em->persist($user);
    $this->em->flush();

    return $user;
}
以及我的国家实体的api调用

public function findCountry($iso)
{
    $country = $this->getCountryRepository()->findBy([
        'iso' => $iso
    ]);
}
还有我的用户enitty类

class User extends BaseUser
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 * @Groups({"user_data"})
 */
protected $id;

/**
 * @ORM\ManyToOne(targetEntity="Country")
 * @JoinColumn(name="country_id", referencedColumnName="id")
 */
private $country;

您的registerUser方法可能需要将iso作为参数,而不是国家/地区

然后您应该将该iso作为参数传递给findCountry调用,而不是传递可能与任何国家都不对应的文字“iso”


这就是为什么您没有从存储库中获取任何值。

这是真正的代码吗?我是说,
iso
(字面)是你要搜索的吗?是的,这是我的实体字段的名称。不,这样你要搜索的是iso值作为值的东西:你没有检索到任何东西,只有那个,所以我怀疑你从repositoryYes中得到的不是
null
,我现在明白了,但我需要一些针对具体问题的指导。不客气。如果您取得了任何进展,但仍然没有成功,请更新问题(编辑它),以便包含更多详细信息。欢迎来到StackOverflow,因为我注意到你是一个新用户!这应该是评论,而不是回答。此外,这应该增加一些细节,而不是重复前面说过的话。请改进答案,删除它,或通过在其他评论中添加一些值来评论问题。如果我的国家/地区表中某列的名称发生更改,则为Thank.isoanything@DonCalisto评论就是评论。不是答案。我提供了菲利普代码错误的完整描述。如果您认为它不完整,请告诉我如何提供这些信息,我将很乐意提供这些信息。@Filip,您如何通过只传递该列来获得用户的国家/地区?你不也需要把实际用户的iso值传递给它吗?好的,我可以通过写一个查询来设置这个参数吗?