2017-06-18 59 views
-1

我在我的BDD上有一個名爲Reading的列。我正在使用一個包來實現一個聊天,並且我想提醒用戶,如果有一個未被發現的消息,所以我使用這個列。但是我不能訪問實體的屬性。我的意思是默認捆綁套件的讀值爲1,但我嘗試將其更改爲0,但沒有奏效。 我試着修改實體屬性設置閱讀值爲false,但得到了相同的結果。無法訪問實體屬性

我將放置實體代碼。我會提供一些建議。

<?php 


namespace belousovr\belousovChatBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Doctrine\ORM\Mapping\JoinColumn; 
use Doctrine\ORM\Mapping\ManyToOne; 
use FOS\UserBundle\Model\User; 

/** 
* @ORM\Entity 
* @ORM\Entity(repositoryClass="belousovr\belousovChatBundle\Entity\MessagesRepository") 
* @ORM\Table(name="belousovr_messages") 
*/ 
class Messages 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="messageText", type="string", length=255) 
    */ 
    protected $messageText; 

    /** 
    * @var boolean 
    * 
    * @ORM\Column(name="reading", type="boolean") 
    */ 
    protected $reading; 


    protected $author; 

    protected $addressee; 

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

    /** 
    * Set messageText 
    * 
    * @param string $messageText 
    * 
    * @return Messages 
    */ 
    public function setMessageText($messageText) 
    { 
     $this->messageText = $messageText; 

     return $this; 
    } 

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

    /** 
    * Set reading 
    * 
    * @param boolean $reading 
    * 
    * @return Messages 
    */ 
    public function setReading($reading = false) 
    { 
     $this->reading = $reading; 

     return $this; 
    } 

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

    /** 
    * Set author 
    * 
    * @param $author 
    * 
    * @return Messages 
    */ 
    public function setAuthor($author) 
    { 
     $this->author = $author; 

     return $this; 
    } 

    /** 
    * Get author 
    */ 
    public function getAuthor() 
    { 
     return $this->author; 
    } 

    /** 
    * Set author 
    * 
    * @param $addressee 
    * 
    * @return Messages 
    */ 
    public function setAddressee($addressee) 
    { 
     $this->addressee = $addressee; 

     return $this; 
    } 

    /** 
    * Get author 
    */ 
    public function getAddressee() 
    { 
     return $this->addressee; 
    } 
    } 

我試着用保護取代私人,但得到了同樣的結果。

在我的控制器我有一個函數sendMessage,我實現日誌來檢查這個讀取值,但它打印消息示例[] []。所以不要看Reading的價值。

public function sendMessageAction(Request $request) 
{ 
    $body = null; 
    $response = new Response(); 
    $response->headers->set('Content-Type', 'application/json'); 

    if (!$this->getUser()) { 
     $body = array('error' => 'user not found'); 
     $response->setContent(json_encode($body)); 
     return $response; 
    } else { 
     $body = array('success' => 'success'); 
    } 

    $em = $this->getDoctrine()->getManager(); 

    $recipient = $this->container->get('fos_user.user_manager'); 
    $addressee = $recipient->findUserBy(array('id' => $request->get('addressee'))); 

    $message = new Messages(); 

    $message->setMessageText($request->get('messageText')); 
    $message->setAuthor($this->getUser()); 
    $message->setAddressee($addressee); 
    $message->setReading(false); 

    $em->persist($message); 

    $em->flush(); 

    $this->get('monolog.logger.message')->info('Message example: ' . $message->getReading()); 
    $response->setContent(json_encode($body)); 
    return $response; 
} 
+0

只看實體我們不能說任何事情。在嘗試訪問屬性的位置顯示代碼。 –

+0

@u_mulder我用我的控制器的功能更新了問題。我放置一個日誌來檢查讀值,但沒有打印它。我將讀取值設置爲0,但是當我發送消息時,它將設置爲1. – Pillow

+0

'發送消息'你在哪裏發送消息? –

回答

0

的首先嚐試硬編碼假到二傳手

/** 
* Set reading 
* 
* @param boolean $reading 
* 
* @return Messages 
*/ 
public function setReading() 
{ 
    $this->reading = false; 

    return $this; 
} 

或者創建一個構造函數和變量讀數設置爲false。

public function __construct(){ 
$this->reading = false ; 
} 

否則顯示我們用於記錄結果的函數。

+0

Nope沒有工作:( – Pillow

+0

也許問題是在日誌功能內。 使用var_dump($ message-> getReading());在這個bloc代碼之後設置變量含義: [...] $ message - > setMessageText($ request-> get('messageText')); $ message-> setAuthor($ this-> getUser()); $ message-> setAddressee($ addressee); $ message-> setReading( false); –

+0

不,我剛剛在我的config.yml上使用了日誌選項「monolog」,它創建了一個文件夾並在裏面打印了消息,我沒有使用var_dumps。 – Pillow