2016-04-16 3 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

これは動作しているようです、ありがとう!しかし、私はユニット変数を$ units変数にしたいだけです(それ以外の場合、重複するカラム名があります)。これに対する解決策はありますか? – user3253002

+1

私はそれを編集しました。それを確認してください。 私の答えを助けてくれることを忘れないでください:)) – BKF