对于最后一个问题,我很抱歉,我没有以最好的方式表达我的怀疑 嘿,我必须知道超过N个房间的房产。
众议院模特
public function imovel(){
return $this->belongsTo(Imovel::class); //property
}
公寓模型
public function imovel(){
return $this->belongsTo(Imovel::class); //property
}
物业模型
public function atributos(){
//se for moradia/ House
if ($this->tipoimovel_id == 1) {
return $this->hasOne(Moradia::class);
}
//se for apartamento/ Apartment
else if ($this->tipoimovel_id == 2) {
return $this->hasOne(Apartamento::class);
}
//se for loja / SHOP
else if ($this->tipoimovel_id == 3) {
return $this->hasOne(Loja::class);
}
//se for armazem
else if ($this->tipoimovel_id == 4) {
return $this->hasOne(Armazem::class);
}
//se for terreno para construção
else if ($this->tipoimovel_id == 5) {
return $this->hasOne(TerrenoConstrucao::class);
}
// se for terreno para outros fins
else if ($this->tipoimovel_id == 6) {
return $this->hasOne(TerrenoOutrosFins::class);
}
}
我正在使用范围进行搜索:
这个范围我搜索所有拥有更多N卧室的房子,但我也必须搜索公寓
public function scopeProcuraNrQuartosMoradia($query,$nrQuartos){
if ($nrQuartos != 0) $query ->join('moradias','imoveis.id', '=', 'moradias.imovel_id')
->where( 'nrQuartos' , '>=' , $nrQuartos);
}
所以我创建了另一个在公寓表中搜索的范围及其错误的
public function scopeProcuraNrQuartosApartamento($query,$nrQuartos){
if ($nrQuartos != 0) $query ->join('apartamentos','imoveis.id', '=', 'apartamentos.imovel_id')
->where( 'nrQuartos' , '>=' , $nrQuartos);
}
控制器
$imo = Imovel::procuraFinalidade($finalidade)->procuraTipo($tipo)->procuraNrQuartosMoradia($nrQuartos)->procuraNrQuartosApartamento($nrQuartos)->paginate(9);
有没有办法在一个范围内这样做,比如做两个连接来查看房屋和公寓的表格?
例如,在这种情况下,UNION会起作用吗?