Я хочу отобразить все kelompoks, которые имеют одинаковые канторы на основе ключевого слова поиска.
у меня было 3 стола
Кантор
id
nama
Гугус
id
nama
id_kantor
Келомпок
id
nama
id_gugus
вот мой контроллер:
$kelompok=kelompok::with('bidang', 'kantor')->whereHas('kantor', function($q) use ($key) {
$q->where('nama', 'like', '%'.$key.'%');
})->orWhereHas('bidang', function($q) use ($key) {
$q->where('nama', 'like', '%'.$key.'%');
})->orWhere('nama', 'like', '%'.$key.'%')->get();
и моя модель:
Келомпок. php
public function bidang()
{
return $this->belongsTo('App\gugus', 'id_gugus');
}
public function kantor()
{
return $this->hasManyThrough('App\kantor', 'App\gugus', 'id_kantor', 'id_gugus', 'id', 'id');
}
Гугус. php
publi c function kantor () {return $ this-> ownTo ('App \ kantor', 'id_kantor'); }
public function kelompok()
{
return $this->hasMany('App\kelompok', 'id_gugus');
}
Кантор
public function gugus()
{
return $this->hasMany('App\gugus', 'id_kantor');
}
вот вывод (ошибка), который я в настоящее время получил:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'nama' in where clause is ambiguous (SQL: select * from `kelompoks` where exists (select * from `kantors` inner join `guguses` on `guguses`.`id` = `kantors`.`id_gugus` where `kelompoks`.`id` = `guguses`.`id_kantor` and `nama` like %gov%) or exists (select * from `guguses` where `kelompoks`.`id_gugus` = `guguses`.`id` and `nama` like %gov%) or `nama` like %gov%)
извините для моего плохого английского sh, надеюсь, вы понимаете это: D