0
我想爲我的表做一個簡單的搜索功能。該表從兩個mssql [Addresses]和[Companies]表中獲取數據。這些表格有一對一的關係。Laravel中的一對一關係搜索功能5.4
class Addresses extends Model
{
protected $table = "Addresses";
protected $primaryKey = 'adress';
public $timestamps = false;
public function scopeSearchAddress($query, $searchTerm)
{
return $query->where('city', 'LIKE', '%'.$searchTerm.'%')
->orWhere('name', 'LIKE', '%'.$searchTerm.'%')
->orWhere('street', 'LIKE', '%'.$searchTerm.'%');
}
public function company()
{
return $this->hasOne(Company::class, 'adress');
}
這種關係是一個地址一家公司。 第一個表格地址有名稱,街道,城市列,第二個表格有compName,compType。
class Company extends Model
{
protected $table = "Company";
protected $primaryKey = 'Adresse';
public $timestamps = false;
public function addresses()
{
return $this->belongsTo(Addresses::class, 'adress');
}
}
這是兩個模型。控制器是這樣的:
class AddressesController extends Controller
{
public function index(Request $request)
{
$searchTerm = $request->input('searchTerm');
$addresses = Addresses::whereHas('compan', function($query) {
$query->where('compType','D');
})->orderBy('Name')
->searchAddress($searchTerm)
->paginate(60);
return view('asdress.index', compact('addresses', 'searchTerm'));
}
}
我可以搜索第一個表後列(城市,名稱,街道)。但我如何搜索像compName這樣的第二個表格列之後。
你好,你忘記了功能後使用($ searchTerm),但這也不起作用。 –
@GregOstry感謝您指出了這一點...我的壞...編輯我的答案 –