【发布时间】:2014-09-22 13:38:06
【问题描述】:
我有以下 Eloquent 模型:
class Song extends Eloquent {
protected $table = 'mg_songs';
protected $hidden = array('events');
protected $appends = array('lastDate');
public function events()
{
return $this->belongsToMany('Event', 'song_event');
}
public function getLastDateAttribute()
{
if (!$this->events) return null;
return $this->events[0]->date->formatLocalized('%d.%m.%Y (%a, %Hч)');
}}
是否可以按与db字段相同的“lastdate”字段进行排序:
$songs->orderBy('title', 'asc'); - works
$songs->orderBy('lastDate', 'desc'); - doesn't works
可能存在简单的答案?
已编辑:
我的数据库结构(仅需要的字段),多对多:
事件表
event_id
日期
歌曲表
歌曲ID
标题
song_event 数据透视表
身份证
歌曲ID
event_id
SQL 请求:
SELECT s.title, (SELECT MAX(e.date) FROM events e JOIN song_event se ON (e.id = se.event_id) WHERE se.song_id = s.id) AS s_date FROM mg_songs s ORDER BY s_date desc
【问题讨论】:
标签: laravel laravel-4 eloquent