2016-10-30 2 views
0

Ich habe ein Laravel-Projekt, das ich überprüfen möchte, ob der Benutzer Eigentümer oder Mieten eine Eigenschaft aus einer MySQLDB, habe ich eine Rewrite-Regel, die sie eine Seite besuchen und bearbeiten diese EigenschaftBlade Query mit mehreren wo und orWhere-Klausel mit bestimmten ID

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

Nun, ich diese Abfrage haben, die überprüft, ob sie entweder eigene oder mieten, aber das ist, wenn theres alle Eigenschaften, um zu überprüfen, dass diese Regel übereinstimmen, ist, wo eine Art, wie ich sicherstellen können, dass sie besitzen oder mieten Sie die Eigenschaft mit ID = {ID}, die mit der Seite gesendet wird?

@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 

Antwort

0

Ich denke, die beste Praxis für diesen Fall fügt dem Eigenschaftsmodell zwei Relationen im Benutzermodell hinzu - so:

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

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

Und dann wird Ihr Scheck würde so etwas wie diese:

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

Ihre Abfrage kann wie in routes.php Datei geschrieben werden:

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')); 
    }); 

Und in Blade-Datei, können Sie schreiben wie:

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

undefinierter Variable $ property_id, gibt es eine Weise, die ich dieses Problem beheben? Die ID wird mit der URL übergeben. –

+0

Antwort aktualisiert. –

+0

Danke, Antwort angenommen. –