1
我超越了FOSUserBundle。 我改變了我的頭像場getter和setter用戶實體(此實體擴展FOSUser實體),以這樣的:爲什麼blob字段的圖像只顯示一次?
/**
* @ORM\Column(type="blob")
*/
protected $avatar;
public function setAvatar($avatar) {
if ($avatar != null) {
$strm = fopen($avatar->getRealPath(), 'rb');
$this->avatar = stream_get_contents($strm);
}
return $this;
}
public function getAvatar() {
if ($this->avatar != null) {
return base64_encode(stream_get_contents($this->avatar));
} else {
return $this->avatar;
}
}
和它的作品,但只有在第一渲染
<img alt="User avatar" src="data:image;base64,{{app.user.avatar}}"/> //working
<img alt="User avatar" src="data:image;base64,{{app.user.avatar}}"/> //not working
如果我試圖顯示這個領域第一次一切正常,下一個渲染顯示空字符串。爲什麼?這個怎麼解決?
其他領域工作正常。
你有權利。我通過向函數stream_get_contents($ this-> avatar,-1,0)添加兩個參數來解決我的問題,其中'-1'表示讀取所有剩餘的緩衝區,'0'被偏移 – Exit196