Symfony 2-错误:“在*行*的非对象上调用成员函数*

登上月球的人类

我最近学习了Symfony 2,所以我还是一个初学者。为了娱乐,我正在尝试制作一个简单的社交网络网站。

因此,我有帖子和主题标签。我在这两个实体之间创建了一个ManyToMany关系(帖子/主题标签)

我试图通过使用getRepository从数据库中获取主题标签。我使用了“ findByHashtagName”方法。当我得到对象时,我试图获取主题标签的ID,但是当我调用方法getId()时,出现以下警告:

Call to a member function * on a non-object in * line *

当我得到对象时,我检查它是否不为null。所以我真的不明白为什么它不起作用。

标签实体:

<?php

namespace Moodress\Bundle\HashtagBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Hashtag
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Moodress\Bundle\HashtagBundle\Entity\HashtagRepository")
*/
class Hashtag
{
   /**
   * @var integer
   *
   * @ORM\Column(name="id", type="integer")
   * @ORM\Id
   * @ORM\GeneratedValue(strategy="AUTO")
   */
   private $id;

   /**
   * @var string
   *
   * @ORM\Column(name="hashtag_name", type="string", length=255)
   */
   private $hashtagName;

/**
   * @ORM\ManyToMany(targetEntity="Moodress\Bundle\PosteBundle\Entity\Poste", cascade={"persist"})
   */
    private $postes;


public function __construct()  
 {
      $this->postes = new \Doctrine\Common\Collections\ArrayCollection();
 }

   /**
   * Get id
   *
   * @return integer 
   */
  public function getId()
  {
    return $this->id;
  }

  /**
   * Set hashtagName
   *
   * @param string $hashtagName
   * @return Hashtag
   */
   public function setHashtagName($hashtagName)
  {
     $this->hashtagName = $hashtagName;

    return $this;
  }

  /**
   * Get hashtagName
   *
   * @return string 
   */
public function getHashtagName()
{
    return $this->hashtagName;
}

/**
 * Add postes
 *
 * @param \Moodress\Bundle\PosteBundle\Entity\Poste $postes
 * @return Hashtag
 */
public function addPoste(\Moodress\Bundle\PosteBundle\Entity\Poste $postes)
{
    $this->postes[] = $postes;

    return $this;
}

/**
 * Remove postes
 *
 * @param \Moodress\Bundle\PosteBundle\Entity\Poste $postes
 */
public function removePoste(\Moodress\Bundle\PosteBundle\Entity\Poste $postes)
{
    $this->postes->removeElement($postes);
}

/**
 * Get postes
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
 public function getPostes()
 {
    return $this->postes;
 }
}

发布文件:

<?php

namespace Moodress\Bundle\PosteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Poste
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Moodress\Bundle\PosteBundle\Entity\PosteRepository")
*/
class Poste
{
  /**
   * @var integer
   *
   * @ORM\Column(name="id", type="integer")
   * @ORM\Id
   * @ORM\GeneratedValue(strategy="AUTO")
   */
   private $id;

  /**
   * @var integer
   *
   * @ORM\Column(name="id_user", type="integer")
   */
   private $idUser;

  /**
   * @var string
   *
   * @ORM\Column(name="description", type="text")
   */
  private $description;

  /**
  * @var integer
  *
  * @ORM\Column(name="nb_comments", type="integer")
  */
  private $nbComments;

  /**
  * @var integer
  *
  * @ORM\Column(name="nb_likes", type="integer")
  */
  private $nbLikes;

  /**
   * @var \DateTime
   *
   * @ORM\Column(name="date_creation", type="datetime")
   */
private $dateCreation;

 /**
  * @var boolean
  *
  * @ORM\Column(name="is_there_fashtag", type="boolean")
  */
 private $isThereFashtag;


/**
 * @var array
 *
 * @ORM\Column(name="array_url_pictures", type="array")
 */
private $arrayUrlPicturesMaxSize;

/**
 * Constructor
 */
public function __construct()
{
    $this->dateCreation = new \Datetime();
    $this->arrayUrlPicturesMaxSize = array();
    $this->nbComments = 0;
    $this->nbLikes = 0;
    $this->isThereFashtag = false;
}

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set idUser
 *
 * @param integer $idUser
 * @return Poste
 */
public function setIdUser($idUser)
{
    $this->idUser = $idUser;

    return $this;
}

/**
 * Get idUser
 *
 * @return integer 
 */
public function getIdUser()
{
    return $this->idUser;
}

/**
 * Set description
 *
 * @param string $description
 * @return Poste
 */
public function setDescription($description)
{
    $this->description = $description;

    return $this;
}

/**
 * Get description
 *
 * @return string 
 */
public function getDescription()
{
    return $this->description;
}

/**
 * Set nbComments
 *
 * @param integer $nbComments
 * @return Poste
 */
public function setNbComments($nbComments)
{
    $this->nbComments = $nbComments;

    return $this;
}

/**
 * Get nbComments
 *
 * @return integer 
 */
public function getNbComments()
{
    return $this->nbComments;
}

/**
 * Set nbLikes
 *
 * @param integer $nbLikes
 * @return Poste
 */
public function setNbLikes($nbLikes)
{
    $this->nbLikes = $nbLikes;

    return $this;
}

/**
 * Get nbLikes
 *
 * @return integer 
 */
public function getNbLikes()
{
    return $this->nbLikes;
}

/**
 * Set dateCreation
 *
 * @param \DateTime $dateCreation
 * @return Poste
 */
public function setDateCreation($dateCreation)
{
    $this->dateCreation = $dateCreation;

    return $this;
}

/**
 * Get dateCreation
 *
 * @return \DateTime 
 */
public function getDateCreation()
{
    return $this->dateCreation;
}

/**
 * Set isThereFashtag
 *
 * @param boolean $isThereFashtag
 * @return Post
 */
public function setIsThereFashtag($isThereFashtag)
{
    $this->isThereFashtag = $isThereFashtag;

    return $this;
}

/**
 * Get isThereFashtag
 *
 * @return boolean 
 */
public function getIsThereFashtag()
{
    return $this->isThereFashtag;
}

public function addPicture($picture, $posteId)
{
    $directory = "/Applications/MAMP/htdocs/moodress-website/Symfony/web/images/postes_images";
    $picture->move($directory, "post_".$posteId."_pic_".count($this->arrayUrlPicturesMaxSize).".".$picture->getClientOriginalExtension());
    $this->arrayUrlPicturesMaxSize[] = "images/postes_images/poste_".$posteId."_pic_".count($this->arrayUrlPicturesMaxSize).".".$picture->getClientOriginalExtension();
}

/**
 * Set arrayUrlPicturesMaxSize
 *
 * @param array $arrayUrlPicturesMaxSize
 * @return Poste
 */
public function setArrayUrlPicturesMaxSize($arrayUrlPicturesMaxSize)
{
    $this->arrayUrlPicturesMaxSize = $arrayUrlPicturesMaxSize;

    return $this;
}

/**
 * Get arrayUrlPicturesMaxSize
 *
 * @return array 
 */
public function getArrayUrlPicturesMaxSize()
{
    return $this->arrayUrlPicturesMaxSize;
 }
}

代码失败:

   $em = $this->getDoctrine()->getManager();
   $hashtag1 = $em->getRepository('MoodressHashtagBundle:Hashtag')->findByHashtagName("bcbg");

     if (!$hashtag1) {
            throw $this->createNotFoundException(
        'None hashtag found');
    }
    else {
        $hashtag1->getHashtagName();
            // This call make the exception : Call to a member function * on a non-object in * line *
}

我做错了什么?

我检查它是否为null ...不是,因为我尝试调用getHashtagName ...如您所见,此方法位于Hashtag实体中。

拉梅什

用这个:

$hashtag1 = $em->getRepository('MoodressHashtagBundle:Hashtag')->findOneByHashtagName("bcbg");
echo $hashtag1->getHashtagName();

否则,如果您使用findByHashtagName,则将获得结果数组:

$hashtags = $em->getRepository('MoodressHashtagBundle:Hashtag')->findByHashtagName("bcbg");

foreach($hashtags as $hashtag1) {
     echo $hashtag1->getHashtagName();
     //something else you want to do
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony 2错误:在非对象上调用成员函数get()

来自分类Dev

Symfony 2错误:在非对象上调用成员函数get()

来自分类Dev

FatalErrorException:错误:在非对象symfony上调用成员函数has()

来自分类Dev

Symfony:错误:在非对象上调用成员函数get()

来自分类Dev

在非对象上调用成员函数get()-Symfony和Silex

来自分类Dev

Symfony登录身份验证返回错误:在非对象上调用成员函数toArray()

来自分类Dev

Symfony 2 /存储库:错误:在非对象上调用了__clone方法

来自分类Dev

Yii2在非对象上调用成员函数saveAs()

来自分类Dev

symfony2 createQueryBuilder将错误调用返回给成员函数

来自分类Dev

Symfony 2 错误:调用数组上的成员函数 andWhere()

来自分类Dev

错误:在数组 Symfony 3 上调用成员函数 contains()

来自分类Dev

在ZF2中的非对象上调用成员函数get()

来自分类Dev

在yii2文件上传中的非对象上调用成员函数saveAs()

来自分类Dev

Zend Framework2致命错误:在第39行的C:\ dir \ module \ Application \ view \ layout \ layout.phtml中的非对象上调用成员函数setAttribute()

来自分类Dev

Symfony FOSRestBundle 错误:在 null 上调用成员函数 get()。[路由或配置错误]

来自分类Dev

Symfony登录表单—致命错误:在null上调用成员函数get()

来自分类Dev

Symfony 3.4 无法在测试中加载装置:错误:在 null 上调用成员函数 get()

来自分类Dev

Symfony 2表单错误

来自分类Dev

symfony 和棘轮在 null 上调用成员函数 get()

来自分类Dev

在字符串 symfony 3.4 上调用成员函数 format()

来自分类Dev

Yii2 调用非对象上的成员函数 load()

来自分类Dev

致命错误:在非对象错误上调用成员函数prepare()

来自分类Dev

错误致命错误:在非对象上调用成员函数insert()

来自分类Dev

致命错误:在非对象错误上调用成员函数prepare()

来自分类Dev

致命错误:在非对象上调用成员函数insert()

来自分类Dev

致命错误:在非对象上调用成员函数error()

来自分类Dev

致命错误:在非对象上调用成员函数first()

来自分类Dev

错误:在非对象上调用成员函数paginate()

来自分类Dev

错误:在非对象上调用成员函数get()

Related 相关文章

  1. 1

    Symfony 2错误:在非对象上调用成员函数get()

  2. 2

    Symfony 2错误:在非对象上调用成员函数get()

  3. 3

    FatalErrorException:错误:在非对象symfony上调用成员函数has()

  4. 4

    Symfony:错误:在非对象上调用成员函数get()

  5. 5

    在非对象上调用成员函数get()-Symfony和Silex

  6. 6

    Symfony登录身份验证返回错误:在非对象上调用成员函数toArray()

  7. 7

    Symfony 2 /存储库:错误:在非对象上调用了__clone方法

  8. 8

    Yii2在非对象上调用成员函数saveAs()

  9. 9

    symfony2 createQueryBuilder将错误调用返回给成员函数

  10. 10

    Symfony 2 错误:调用数组上的成员函数 andWhere()

  11. 11

    错误:在数组 Symfony 3 上调用成员函数 contains()

  12. 12

    在ZF2中的非对象上调用成员函数get()

  13. 13

    在yii2文件上传中的非对象上调用成员函数saveAs()

  14. 14

    Zend Framework2致命错误:在第39行的C:\ dir \ module \ Application \ view \ layout \ layout.phtml中的非对象上调用成员函数setAttribute()

  15. 15

    Symfony FOSRestBundle 错误:在 null 上调用成员函数 get()。[路由或配置错误]

  16. 16

    Symfony登录表单—致命错误:在null上调用成员函数get()

  17. 17

    Symfony 3.4 无法在测试中加载装置:错误:在 null 上调用成员函数 get()

  18. 18

    Symfony 2表单错误

  19. 19

    symfony 和棘轮在 null 上调用成员函数 get()

  20. 20

    在字符串 symfony 3.4 上调用成员函数 format()

  21. 21

    Yii2 调用非对象上的成员函数 load()

  22. 22

    致命错误:在非对象错误上调用成员函数prepare()

  23. 23

    错误致命错误:在非对象上调用成员函数insert()

  24. 24

    致命错误:在非对象错误上调用成员函数prepare()

  25. 25

    致命错误:在非对象上调用成员函数insert()

  26. 26

    致命错误:在非对象上调用成员函数error()

  27. 27

    致命错误:在非对象上调用成员函数first()

  28. 28

    错误:在非对象上调用成员函数paginate()

  29. 29

    错误:在非对象上调用成员函数get()

热门标签

归档