0
私は不動産販売サイトを行っています。Laravel - 属性がrelacionalテーブルに存在するかどうかを知る方法
私はアパートや家のように検索する必要がある各テーブルを知る方法、寝室の属性を持っていないショップのようなプロパティを持っています。 私はスコープを使用していますが、プロパティの場所とタイプに問題はありません。
私の財産モデル
public function atributos(){
//se for moradia
if ($this->tipoimovel_id == 1) {
return $this->hasOne(Moradia::class);
}
//se for apartamento
else if ($this->tipoimovel_id == 2) {
return $this->hasOne(Apartamento::class);
}
//se for loja
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);
}
}
倉庫は、寝室の数
Schema::create('armazens', function (Blueprint $table) {
$table->integer('imovel_id');
$table->integer('areaAcessoria');
$table->integer('areaTotal');
$table->smallInteger('anoConstrucao');
$table->timestamps();
});
家は寝室
public function scopeProcuraNrQuartos($query,$nrQuartos){
if ($nrQuartos) $query->where($this->atributos()->nrQuartos , '>=' , $nrQuartos);
}
の数で検索する
Schema::create('moradias', function (Blueprint $table) {
$table->integer('imovel_id');
$table->integer('nrPisosConstrucao');
$table->integer('nrQuartos');
$table->integer('nrWcs');
$table->integer('areaConstrucao');
$table->integer('areaTerreno');
$table->smallInteger('anoConstrucao');
$table->timestamps();
});
マイスコープを持って持っていけません
私は間違っていることを知っていますが、その属性がテーブルに存在するかどうかを知るための検証がいくつか存在しますか? ありがとう
私はあなたの問題を理解していますが、私はあなたと思うant https://laravel.com/api/5.4/Illuminate/Database/Query/Builder.html#method_whereExists – Bebras