【问题标题】:Querying Relationship Fields in Lumen/Laravel 5.3在 Lumen/Laravel 5.3 中查询关系字段
【发布时间】:2017-03-15 17:18:17
【问题描述】:

所以我在 Laravel 关系方面遇到了一点问题。

我有一个用于潜在客户转化的 模型,它与 details 模型具有 hasOne 关系,details 模型包含一个 我需要使用的 hashkey 字段。

public function details()
{
    return $this->hasOne('App\Models\CampaignDetails', 'n_idcampaign', 'n_idcampaign')->select(['n_idcampaign', 'hashkey']);
}

到目前为止一切顺利,我真的只需要 hashkey 但我需要返回 idcampaign 以及外键,否则由于某种原因它无法工作......

当我查询模型时,我会执行以下操作。

return $this->model->with('details')->where('n_idcampaign', 1884)->first();

到目前为止,一切都很好,它返回了整个东西,像first()->details->hashkey 这样访问它很痛苦,但至少它可以工作......

当我需要根据 Hashkey 进行 where 查询时,就会出现更大的问题...

return $this->model->with('details')->where('idData', $id)->where('hashkey', $haskkey)->first();

这不起作用,我怎样才能做到这一点,以便我可以根据关系中的字段查询主模型(在本例中为 hashkey

【问题讨论】:

标签: php laravel eloquent laravel-query-builder


【解决方案1】:

如果您需要根据关系限制查询,可以使用whereHas() 方法。

return $this->model->with('details')
    ->where('idData', $id)
    ->whereHas('details', function ($query) use ($haskkey) {
        return $query->where('hashkey', $haskkey);
    })
    ->first();

https://laravel.com/docs/master/eloquent-relationships#querying-relationship-existence

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2017-02-28
    • 2017-05-13
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多