2016-10-30 4 views
0

ユーザーがMySQLDBの所有者であるか、または借りているかどうかをチェックしたいラーバルプロジェクトがあります。ページを訪問するための書き換えルールがあります。Blade複数のwhereとorWhere節で特定のIDと一致するもの

Route::get('/housing/manage/{id}', function() { 
     return view('pages.housing_management.housing_management'); 
    }); 

は今、私は彼らが自分のどちらか、それを借りるかどうかを確認するこのクエリを持っていますが、theresの場合は、そのルールに一致するすべてのプロパティをチェックするためにthatsの、彼らが所有しているところ私が作ることができる方法が確実です。このプロパティを編集ページで送信されたid = {id}のプロパティーをレンタルしますか?

Route::get('/housing/manage/{id}', function($id) { 
     $exists = Properties::where('id', '=', $id) 
          ->where(function($q) { 
           $q->where('owner', '=', Auth::user()->id) 
            ->orWhere('rented_by', '=', Auth::user()->id); 
          })->exists() 
     return view('pages.housing_management.housing_management', compact('exists')); 
    }); 

そして、あなたのブレード・ファイルで、あなたのように書くことができます:あなたのクエリとしてroutes.phpファイルに書き込むことができ

@if (count(Properties::where('owner', '=', Auth::user()->id)->orWhere('rented_by', '=', Auth::user()->id)->orderBy('id', 'DESC')->limit(1)->get()) > 0) 
<p>Authentication Passed, you either own or rent this property.</p> 
@endif 

答えて

0

私は、この場合のベストプラクティスを考えますユーザーモデルの2つの関係をプロパティモデルに追加しています - このように:

public function ownedProperties() { 
    return $this->hasMany(Properties::class, 'owner'); 
} 

public function rentedProperties() { 
    return $this->hasMany(Properties::class, 'rented_by'); 
} 

そしてあなたのチェックがつもり、このようなものにされています

@if ($user->ownedProperties->contains($propertyId) || $user->rentedProperties->contains($propertyId)) 
    <p>Authentication Passed, you either own or rent this property.</p> 
@endif 
0

@if ($exists) 
<p>Authentication Passed, you either own or rent this property.</p> 
@endif 
+0

未定義変数$ PROPERTY_ID、私はこの問題を解決することができます方法はありますか? idとURLを渡しています。 –

+0

回答が更新されました。 –

+0

ありがとうございました。 –

関連する問題