首页 > 解决方案 > 如何使用 id 搜索与 laravel 中的另一列有关系?

问题描述

这个想法是我有两张桌子。第一个被称为service,第二个被称为card。在两个表之间,通过表service_id上的列存在关系card。我想检索与具有特定名称的服务相关的所有卡片。

在此处输入图像描述

我的错误代码:

$data = request()->get('s');
$search = card::where('service_id', 'like', "%{$data}%")
    ->paginate($this->paginateNum);

我该怎么做 ?

标签: laravel

解决方案


您正在寻找whereHas($relation, $callback),它可以让您搜索相关表:

$data = request()->get('s');

$search = card::whereHas('service', function ($query) use ($data) {
    $query->where('name', 'like', "%{$data}%");
})->paginate($this->paginateNum);

推荐阅读