按照Laravel's Eloquent中相关模型的字段进行过滤

时间:2017-01-02 05:15:12

标签: php laravel eloquent

我有简单的mailData模型和邮件模型

这是mailData中的关系:

function mail(){
    return $this->belongsTo(Mail::class);
}

这是我的疑问:

$m = MailData::where('user_id', $userId)->orderBy('created_at', 'DESC')->take(10)->get();

但我希望按邮件模型中的字段“收藏夹”进行过滤。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

你可以这样做。

<script src="//cdnjs.cloudflare.com/ajax/libs/zepto/1.0/zepto.min.js"></script>
<div id="mask">
    <div id="page">
        <h1>flipclock</h1>

        <div id="container"></div>

        <div class="clearfix"></div>
        <h2>USAGE</h2>
        <ul id="usage">
            <li class="selected">
                clock
                <code>$('#container').flipclock();</code>
            </li>
            <li>
                fulldate
                <code>$('#container').flipclock('date');</code>
            </li>
            <li>
                countdown
                <code>$('#container').flipclock('2013 01 17 12:00:00');</code>
            </li>
        </ul>
    </div>
</div>

答案 1 :(得分:1)

如果您只想过滤这些数据,可以使用

$m = MailData::with('mail')->whereHas('mail', function ($q) use ($value) {
        $q->where('favorite', $value);
    })
        ->where('user_id', $userId)->orderBy('created_at', 'DESC')->take(10)->get();