2016-04-16 45 views
0

我能夠在我的模型單元的某些列中進行搜索。在Laravel的父母列上的雄辯查詢

$units = Unit::where('name', 'LIKE', '%' . $query . '%')   
      ->orWhere('address', 'LIKE', '%' . $query . '%')->paginate(15); 

單位屬於一個名爲房產模型:

public function property() 
    { 
     return $this->belongsTo('App\Property'); 
    } 

我怎麼會在財產屬性進行搜索?

我想:

$units = Unit::where('name', 'LIKE', '%' . $query . '%')   
      ->orWhere('address', 'LIKE', '%' . $query . '%')->paginate(15); 
      ->orWhere('property.name', 'LIKE', '%' . $query . '%')->paginate(15); 

,但我得到以下錯誤:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'property.name' in 'where clause' 

回答

1

試試這個: 我假設你的表是:unitsproperties和他們的主鍵都id和外國關鍵單位是:property_id

$units = Unit::select('units.*') 
     ->where('units.name', 'LIKE', '%' . $query . '%')   
     ->orWhere('units.address', 'LIKE', '%' . $query . '%') 
     ->join('properties','properties.id','=','units.property_id') 
     ->orWhere('properties.name', 'LIKE', '%' . $query . '%')->paginate(15); 
+0

這似乎工作,謝謝!但我只想要$單位變量中的單位列(否則我有太多重複的列名稱)你有這個解決方案嗎? – user3253002

+1

我編輯它,請檢查它 不要忘記讓我的答案有幫助:)) – BKF