Zend framework 原则2-持续错误-警告:spl_object_hash()期望参数1为object,给定null

Zend framework 原则2-持续错误-警告:spl_object_hash()期望参数1为object,给定null,zend-framework,doctrine-orm,Zend Framework,Doctrine Orm,我在教义中创建了这样的条目。我正试图把篮子添加到页面中。 这是我的实体: 我的实体: <?php namespace App\Entity; use Doctrine\Common\Collections\ArrayCollection; /** * @Entity(repositoryClass="App\Repository\Page") * @Table(name="page") */ class Page { /** * @Id @Column(type

我在教义中创建了这样的条目。我正试图把篮子添加到页面中。 这是我的实体: 我的实体:

<?php

namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
/**
 * @Entity(repositoryClass="App\Repository\Page")
 * @Table(name="page")

 */
class Page
{
    /**
     * @Id @Column(type="integer", name="p_id")
     * @GeneratedValue
     */
    private $p_id;
    /** @Column(type="string", name="p_title") */
    private $p_title;
    /** @Column(type="datetime", name="p_created") */
    private $p_created_at;
    /** @Column(type="datetime", name="p_updated_at") */
    private $p_updated_at;
    /** @Column(type="text", name="p_abstract") */
    private $p_abstract;
     /** @Column(type="text", name="p_fulltext", nullable=false) */
    private $p_fulltext;
     /** @Column(type="string", name="p_author", nullable=true) */
    private $p_author;
     /** @Column(type="string", name="p_url",nullable=true) */
    private $p_url;
     /** @Column(type="string", name="p_meta_title",nullable=true) */
    private $p_meta_title;
     /** @Column(type="string", name="p_meta_keywords",nullable=true) */
    private $p_meta_keywords;
     /** @Column(type="string", name="p_meta_description",nullable=true) */
    private $p_meta_description;
      /** @Column(type="string", name="p_status") */
    private $p_status;
    /** @Column(type="string", name="p_weight") */
    private $p_weight; 
    /**
     * @ManyToOne(targetEntity="User", inversedBy="pages")
     * @JoinColumn(name="p_u_id", referencedColumnName="u_id")
    */
    private $user;

    /**
     * @OneToMany(targetEntity="App\Entity\Page\Basket", mappedBy="page", cascade={"persist", "remove"})
     */
    protected $pageBaskets;


    public function __construct()
    {
       $this->pageBaskets = new ArrayCollection();
       $this->pageMedia = new ArrayCollection();
    }
    public function __get($property)
    {
        return $this->property;
    }
    public function __set($property,$value)
    {
        $this->$property = $value;
    }
    public function getPageMedia()
    {
        return $this->pageMedia;
    }
    public function setUser(\App\Entity\User $user)
    {
        $this->user = $user;
    }
    public function getMedias()
    {
       return $this->pageMedia;
    }
    public function getPageBaskets()
    {
        return $this->pageBaskets;
    }
    /**
     * Set Page Values
     * @var array $values
     */
    public function setPageProperties(array $values)
    {
        $this->p_updated_at =  new \DateTime("now");
        $this->p_title = $values['p_title'];
        $this->p_abstract = $values['p_abstract'];
        $this->p_meta_title = $values['p_meta_title'];
        $this->p_meta_keywords = $values['p_meta_keywords'];
        $this->p_meta_description = $values['p_meta_description'];
        $this->p_url = $values['p_url'];
        $this->p_fulltext = $values['p_abstract'];
        $this->p_author = '';
        $this->p_status = 1;

    }
    public function getSimpleValues()
    {
        return array(
            'p_updated_at' =>  $this->p_updated_at,
            'p_title' => $this->p_title,
            'p_abstract' =>  $this->p_abstract,
            'p_meta_title' => $this->p_meta_title,
            'p_meta_keywords' => $this->p_meta_keywords,
            'p_meta_description' => $this->p_meta_description,
            'p_url' => $this->p_url,
            'p_fulltext' =>  $this->p_fulltext,
            'p_author' => $this->p_author
        );
    }
}

?>


<?php
namespace App\Entity\Page;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @Entity
 * @Table(name="page_basket")

 */
class Basket
{
    /**
     * @Id @Column(type="integer", name="pb_id")
     * @GeneratedValue
     */
    private $pb_id;
    /**
     * @ManyToOne(targetEntity="Entity\Page", )
     * @JoinColumn(name="pb_id", referencedColumnName="p_id")
    */
    private $page;


    public function __construct()
    {

    }
    public function __get($property)
    {
        return $this->property;
    }
    public function __set($property,$value)
    {
        $this->$property = $value;
    }
    public function setPage($page)
    {
        $this->page = $oszpage;
    }
}

?>
我得到: 警告:spl_object_hash()要求参数1为object,给定null


我做错了什么?

最好按照手册中的示例进行操作,直到您感到更舒服为止。放弃神奇的_get/_set方法。D2依靠拦截方法调用来完成它的工作。将数组集合视为数组,并构建与实体交互的特定方法

具体而言:

public function addPageBasket($pageBasket)
{
    $this->pageBaskets[] = $pageBasket;
}
...
$page->addPageBasket($pageBasket);

另外,对于您的特定问题,很可能$basket不是一个对象。

这对我不起作用,我甚至不使用神奇的get和set方法。我仍然会遇到相同的错误,但我在尝试检索主实体时已经遇到错误!你找到解决问题的办法了吗?
public function addPageBasket($pageBasket)
{
    $this->pageBaskets[] = $pageBasket;
}
...
$page->addPageBasket($pageBasket);