我有一个Eloquent模型,可以转换为其他Eloquent模型,如下所示:
<?php
class Message extends Eloquent {
public function message()
{
return $this->morphTo('message');
}
}
原因是,应用程序有许多不同类型的消息。我知道这不是最优雅的方法,但这是我以前的开发人员所痴迷的。
所以,我的问题是:我只需要返回Message
个实例,其中变形消息表中的state
列与值匹配。我的Message
模型类中有这个查询范围方法:
public function scopeDeclinedMessages($query)
{
return $query->with(array('message' => function ($q)
{
$q->where('state', '=', MessageState::DECLINED);
}));
}
但是,这不起作用,因为它仍会返回Messages
,其中变形表中的state
与拒绝状态不匹配。
对于透明度,MessageState::DECLINED
的值为2
,但我收到的消息是变形表格state
列等于0
的位置。