Laravel搜索关系

时间:2017-05-16 06:19:37

标签: laravel laravel-5.4

我已将此库实现为全文搜索。

https://github.com/TomLingham/Laravel-Searchy

有人知道如何搜索关系表。

例如:

应用程序模型将状态存储为整数,并引用名称的状态模型。

application_status = 1

在状态模型中:

id:Name
1:Approve
2:Reject

示例代码:

Searchy::applications('status')->query('Approve')->get();

1 个答案:

答案 0 :(得分:0)

您可以通过我所知的两种方式查询模型关系。

// Use sub query with count
$applications = Application::whereHas('status', function ($query) {
        return $query->where('name', 'Approve');
    })
    ->get();

// Use join (if one-to-many or many-to-many, remember group by)
$applications = Application::select('applications.*')
    ->join('statuses', 'application.status_id', '=', 'status.id')
    ->where('statuses.name', 'Approve')
    ->get();

对您的软件包进行了非常高级的查看,我无法立即看到您将如何使用示例语法集成(如下)。

 Searchy::applications('status')->query('Approve')->get();

从您的软件包的文档中,此语法表明statusApplication上的字段,而它实际上是一种关系。我认为您需要做出某种区分才能在内部决定如何查询该值。