데이터베이스에서 데이터를 검색하려고하는데 올바른 결과를 얻지 못했습니다. foreach의 시작 부분에있는 "$ sale-> whereRaw"쿼리에서 일부 데이터를 가져 오는 동안 "If"문이 제대로 작동하지 않는 것처럼 보입니다. 내가 뭘 잘못하고 있니?Laravel Eloquent를 사용하여 데이터베이스에서 올바른 데이터 검색
저는 Laravel 4.2와 협력 중입니다.
컨트롤러 :
$matches = Match::where('PeopleID', '=', $id);
$sales = Sale::leftJoin('property', 'sales.property_id', '=', 'property.property_id')
->where('Status', '=', 'ForSale');
foreach($matches as $match)
{
$county = $match->county;
$sales->whereRaw("match (`county`) against (?)", array($county));
if($match->tenureFh == '1')
{
$sales->where('Tenure','=','FH');
if($match->minPrice != '0')
{
$sales->where('PriceFreehold', '>=' , $match->minPrice);
}
if($match->maxPrice != '0')
{
$sales->where('PriceFreehold', '<=', $match->maxPrice);
}
}
if($match->tenureLh == '1')
{
$sales->where('Tenure', '=', 'LH');
if($match->minPrice != '0')
{
$sales->where('PriceLeasehold', '>=' , $match->minPrice);
}
if($match->maxPrice != '0')
{
$sales->where('PriceLeasehold', '<=', $match->maxPrice);
}
}
}
$results = $sales->orderBy('sales.updated_at', 'asc')->get();
일치 모델
public function people()
{
return $this->belongsTo('People', 'PeopleID', 'PeopleID');
}
public function sale()
{
return $this->hasMany('Sale');
}
판매 모델
public function match()
{
return $this->belongsTo('Match');
}
사람들 모델
public function matches()
{
return $this->hasMany('Match', 'PeopleID', 'PeopleID');
}
public function sale()
{
return $this->hasMany('Sale');
}
@uptade
현재 나는이 문장의 결과는 무엇입니까 : 좋은
$sales->whereRaw("match (`county`) against (?)", array($county));
그러나 나는 더 결과를 필터링해야하고 이것이 어디 문이 곳으로 와서 "만일" .
"일치"는 각 고객에 대한 서로 다른 검색 자격 증명을 포함합니다. 후보자가 "Tenure : FH"로 제품을 찾고있는 경우 County "A"에서 "A"카운티와 "Tenure"가 "FH"인 제품을 표시해야합니다.). 그러나 "Tenure"가 "FH"이거나 "FH"가 아닌 카운티 A에 대한 모든 결과를 얻고 있기 때문에 이러한 진술은 효과가없는 것처럼 보입니다.
결과가 더 이상 필터링되지 않으므로 문제는 "Ifs"와 같아야합니다.
당신이 자동차 딜러 웹 사이트에 로그인하고 빨간색, 4 도어 자동차를 찾고 있다고 상상해보십시오. 그러나 결과는 모든 4 도어 자동차이지만 모든 색상이 다릅니다 (하지만 빨간색을 원했습니까?). - 이것이 현재 어떻게 작동하는지입니다.
예상되는 결과와 현재 얻고있는 결과를 알려주는 것이 좋을 것이라고 생각합니다. – SteD
@SteD 내 업데이트를 참조하십시오. 나는 나의 지위를 편집하고 거기에서 설명했다. 건배. –