0

我在 HHVM 下安装了 laravel 4,并在我的 eloquent 上设置了一个从 SQL 日期到人类的转换器日期作为附件。

做这样的事情:

public function getDateSpanAttribute($value)
{
      return $value = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s',$this->created_at)->diffForHumans();
}

此方法在 php5 下运行良好,没有错误即可。在 HHVM 上,这个附件给我一个异常说,

{"error":{"type":"InvalidArgumentException","message":"Unknown setter '_date_time'","file":"/var/www/mynextmatch/vendor/nesbot/carbon/src/Carbon/Carbon. php","line":542}}

我在那一排看到了碳的来源,这是__get()解决这个问题的神奇方法,但我不知道为什么会这样。

我会很感激同样的帮助。谢谢

4

2 回答 2

0

不确定错误,HHVM但有一件事是确定accessor方法不包含任何参数,它应该是(手动):

public function getDateSpanAttribute()
{
      return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $this->created_at)->diffForHumans();
}

您只需要返回property未设置任何内容,如果您想设置任何内容,那么它将是一个setter/mutator接受值作为参数的方法。

于 2014-04-30T19:03:38.563 回答
0

我遇到了同样的问题,但认为我的问题与登录后创建会话有关(InvalidArgumentException Unknown setter '_date_time')。我的安装在 Ubuntu 14.04 上运行的 HHVM 3.1 上。我使用 Ubuntu 12.04 进行了相同的设置,但没有遇到此问题。

10. InvalidArgumentException
…/­vendor/­nesbot/­carbon/­src/­Carbon/­Carbon.php542
9. Carbon\Carbon __set
<#unknown>0
8. DateTime __sleep
<#unknown>0
7. serialize
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Store.php222
6. Illuminate\Session\Store save
…/­vendor/­laravel/­framework/­src/­Illuminate/­Session/­Middleware.php126 
于 2014-06-19T12:09:09.233 回答