Chciałbym w wyszukiwarce mieć miejscowość (to już jest) oraz stanowisko lub branże , które należy wyciągać z tabel :
position_groups ( id, name)
1 , pracownik fizyczny
---
positions ( id, position_group_id, name )
1, 1 , malarz
---
jobs ( id, name, user_id, city_id, position_id, position_group_id )
1, Poszukiwany na już malarz, 1, 1, 1, 1
kod w pliku FrontendRepository.php
public function getSearchResults( string $city) { return City::with(['jobs'])->where('name',$city)->first()false;
}
kod z pliku City.php
<?php namespace App; use Illuminate\Database\Eloquent\Model; class City extends Model { protected $guarded = []; public $timestamps = false; public function jobs() { return $this->hasMany('App\JobOffer'); } }
oraz kod z pliku JobOffer.php
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; class JobOffer extends Model { protected $table = 'jobs'; public $timestamps = false; use Job\Presenters\ObjectPresenter; public function scopeOrdered($query) { return $query->orderBy('name', 'asc'); } public function city() { return $this->belongsTo('App\City'); } public function region() { return $this->belongsTo('App\Region'); } public function province() { return $this->belongsTo('App\Province'); } public function country() { return $this->belongsTo('App\Country'); } public function agreement() { return $this->belongsTo('App\Agreement'); } public function agreementType() { return $this->belongsTo('App\AgreementType'); } public function work() { return $this->belongsTo('App\Work'); } public function position() { return $this->belongsTo('App\Position'); } public function positionGroup() { return $this->belongsTo('App\PositionGroup'); } public function user() { return $this->belongsTo('App\User'); } public function photos() { return $this->morphMany('App\Photo', 'photoable'); } }
Czyli wpisując w input np malarz przeszuka mi w tabeli jobs z kolumny name name like wpisany% lub jeżeli ktoś wpiszę pracownik fizyczny to znajdzie to z tabeli position_groups lub z tabeli positions z kolumny name.