我正在进行从laravel 3到laravel 4的转换...
我有一个Article模型,访问名为articles的表。
我已经设置了以下变形器来配置该模型:
class Article extends Eloquent {
public function getArticleDateAttribute($value)
{
return date('d/m/Y', strtotime($value));
}
public function getValidUntilAttribute($value)
{
return date('d/m/Y', strtotime($value));
}
}
现在,当我使用以下查询数据库并删除mutators时,一切都按预期工作,我得到了我期望的数据:
public function getTest() {
$data = Article::select(array(
'articles.id',
'articles.article_date',
'articles.image_link',
'articles.headline',
'articles.category'
)) ->get()
->toArray();
var_dump($data);
//return View::make('_layouts.master');
}
在我的测试中,我得到了如下示例所预期的结果:
array (size=5)
'id' => int 3
'article_date' => string '2008-06-03 00:00:00' (length=19)
'image_link' => string '' (length=0)
'headline' => string 'Sussex Amateur Course Closure' (length=29)
'category' => int 6
现在,当我添加回变异器时,使用完全相同的查询,我会获得以下数据:
array (size=6)
'article_date' => string '03/06/2008' (length=10)
'valid_until' => string '01/01/1970' (length=10)
'id' => int 3
'image_link' => string '' (length=0)
'headline' => string 'Sussex Amateur Course Closure' (length=29)
'category' => int 6
列的顺序已更改,并且包含了我最初未请求的列。我应该如何正确实现mutators,并且为什么列会改变?
我是否理解有误?
谢谢
雷
Eloquent\Model
中的一个bug。为什么无法将collection(而不是数组)传递到视图中? - radmen