我在我的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;
}
只看實體我們不能說任何事情。在嘗試訪問屬性的位置顯示代碼。 –
@u_mulder我用我的控制器的功能更新了問題。我放置一個日誌來檢查讀值,但沒有打印它。我將讀取值設置爲0,但是當我發送消息時,它將設置爲1. – Pillow
'發送消息'你在哪裏發送消息? –