Laravel:搜索关系数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel:搜索关系数据相关的知识,希望对你有一定的参考价值。

我在同一个模型中有以下方法。我有另一个表调用pet_tracking,有一个名为microchip的列,我必须搜索该列。

public function petInsurance(){
    return $this->hasOne('AppPetInsurance');
}

public function petTracking(){
    return $this->hasOne('AppPetTracking');
}

public function searchFoundPet($mpc_security, $microchip, $rabies_id,$vet_tag){

    $query = $this->with('petInsurance', 'petTracking');

    if ($microchip){
        $query->orWhere('microchip','like', $microchip);
    }

    pets = $query->get();
    return $pets;
}

唯一的例外是Column not found: 1054 Unknown column 'microchip' in 'where clause'

答案

你必须使用JOIN:https://laravel.com/docs/5.6/queries#joins

像这样(如果你的代码显示Pet模型):

$query->join('pet_tracking', 'pet.id', '=', 'pet_tracking.pet_id');

以上是关于Laravel:搜索关系数据的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中搜索表及其关系

Laravel:数据表搜索选项不使用关系表字段

Laravel:搜索相关数据

Laravel:搜索关系数据

尝试在 laravel 中的表或关系中搜索

在最近的关系记录中搜索 - Laravel (Eloquent)