Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 访问实体中的OneToMany关系时未定义索引_Php_Symfony_Doctrine_Symfony4 - Fatal编程技术网

Php 访问实体中的OneToMany关系时未定义索引

Php 访问实体中的OneToMany关系时未定义索引,php,symfony,doctrine,symfony4,Php,Symfony,Doctrine,Symfony4,我的表具有以下实体结构: 我正在尝试访问以下电影源: $movie->getSources() 根据文档,我可以这样做,但现在我收到以下通知 Notice: Undefined index: movie 我不明白为什么 我的代码有问题吗?基于您的实体的github链接: 首先 您不能执行$movie->getSources(),因为在您的movie类中没有名为$sources的字段 秒 在电影实体中有一个名为$movieSource的字段,它是一对多关系。应该重命名为$movieSou

我的表具有以下实体结构:

我正在尝试访问以下电影源:

$movie->getSources()
根据文档,我可以这样做,但现在我收到以下通知

Notice: Undefined index: movie
我不明白为什么


我的代码有问题吗?

基于您的实体的github链接:

首先

您不能执行
$movie->getSources()
,因为在您的movie类中没有名为
$sources
的字段

在电影实体中有一个名为
$movieSource
的字段,它是一对多关系。应该重命名为
$movieSources
,因为您将获得MovieSource对象的ArrayCollection

我怀疑,你想和电影来源建立一个多方面的关系

如果是,您可以直接将这些实体相互链接,而不必担心中间表,doctrine会为您这样做

请看这里:

如果中间表没有实际用途,我强烈建议您放弃它

但是,如果您想保留此模型,则必须调用(更改方法名称后)

并对该集合进行迭代

for ($movie->getMovieSources() as $movieSource) {
  $moviesource->getSource();
}

最有可能的是,您最初的ASQUED错误随着这些更改而消失。

基于您的实体的github链接:

首先

您不能执行
$movie->getSources()
,因为在您的movie类中没有名为
$sources
的字段

在电影实体中有一个名为
$movieSource
的字段,它是一对多关系。应该重命名为
$movieSources
,因为您将获得MovieSource对象的ArrayCollection

我怀疑,你想和电影来源建立一个多方面的关系

如果是,您可以直接将这些实体相互链接,而不必担心中间表,doctrine会为您这样做

请看这里:

如果中间表没有实际用途,我强烈建议您放弃它

但是,如果您想保留此模型,则必须调用(更改方法名称后)

并对该集合进行迭代

for ($movie->getMovieSources() as $movieSource) {
  $moviesource->getSource();
}

最有可能的是,您最初的ASQUED错误随着这些更改而消失。

我已经运行了条令:schema:validate命令,现在我想我得到了它

我的问题是在
MovieSchema
中,对于
$movie
属性,我有两个字段注释:
@ORM\Column(type=“string”,name=“movie\u id”)
@ORM\JoinColumn(name=“movie\u id”,referencedColumnName=“id”,nullable=false)

我已经删除了第一个,现在我在调用getSources方法时得到了所需的结果


非常感谢您花了这么多时间。

我已经运行了条令:模式:验证命令,现在我想我明白了

我的问题是在
MovieSchema
中,对于
$movie
属性,我有两个字段注释:
@ORM\Column(type=“string”,name=“movie\u id”)
@ORM\JoinColumn(name=“movie\u id”,referencedColumnName=“id”,nullable=false)

我已经删除了第一个,现在我在调用getSources方法时得到了所需的结果


非常感谢您花了这么多时间。

错误消息可能重复,这意味着您正在尝试访问索引为“movie”的数组。可能与getSources()无关。可能是您忘记将$movie添加到细枝数据中了?只是胡乱猜测。在代码中搜索电影并查看弹出的内容。我不是试图从视图访问
getSources()
方法。我使用cli命令。根据《条令》的文件,我的实体是正确的,但不知何故,有些东西仍然是错误的,我看不出确切的原因。我知道缺少索引
电影
,但我不知道如何设置它。通知来自
basicintypersister
gist映射中没有任何内容真正跳出来。确保资源下没有任何旧的yaml/xml映射文件。要点没有显示Movie::getSources,所以我不知道这是否是问题所在。我也不知道Movie::movieSource是否是数组。拼写似乎表明不是。错误消息的可能重复表明您正在尝试访问索引为“movie”的数组。可能与getSources()无关。可能是您忘记将$movie添加到细枝数据中了?只是胡乱猜测。在代码中搜索电影并查看弹出的内容。我不是试图从视图访问
getSources()
方法。我使用cli命令。根据《条令》的文件,我的实体是正确的,但不知何故,有些东西仍然是错误的,我看不出确切的原因。我知道缺少索引
电影
,但我不知道如何设置它。通知来自
basicintypersister
gist映射中没有任何内容真正跳出来。确保资源下没有任何旧的yaml/xml映射文件。要点没有显示Movie::getSources,所以我不知道这是否是问题所在。我也不知道Movie::movieSource是否是数组。拼写似乎表明不是。你是对的,我想在电影和源之间建立一个多对多关系模型,但同时我想在透视表(电影描述)上存储一些额外的信息,这可能是一件坏事,但是到目前为止,我还没有其他办法来存储电影描述,因为每个来源的电影描述都不一样。我的
getSources
方法实际上返回对象的
movieSource
属性,这就是我试图调用此方法的原因。我将尝试用完整的代码更新要点。另外,
movieSource
属性是i
for ($movie->getMovieSources() as $movieSource) {
  $moviesource->getSource();
}