I was tidying up my code. Instead of having my logic all in the views, I broke it off into functions in the Tenancy model, and called them in the view.
For example
This was my original line in index.blade.php
@if($Tenancy->accepted == 0 && $Tenancy->request_sent != 1)
I changed it to this
@if($Tenancy->addTenancy()
And moved the logic to my Tenancy model like so
public function addTenancy()
{
return $this->accepted == 0 && $this->request_sent == 0;
}
This works for adding a user.
But for detecting requests, and detecting friends it is not working. The IF is't progressing past the first if.else block
@if(Auth::user()->id == $user->id)
<h1>You cannot add yourself</h1>
@elseif($Tenancy->addTenancy())
<a href="/account/tenancy//create" class="btn btn-primary">Start Tenancy</a>
@endif
<!--
If the user signed in, isn't the owner of this profile.
Do not show these buttons that control accept/reject/end
-->
@if(Auth::user()->id == $user->id)
<!--
If the request has been sent, but hasn't been accepted.
Give option to accept and reject.
This updates the values in DB.
-->
@if($Tenancy->hasRequestPending())
<form method="POST" action="/account/tenancy//accept">
<input type="submit" class="btn btn-primary" value="Accept Request">
</form>
<form method="POST" action="/account/tenancy//reject">
<input type="submit" class="btn btn-warning" value="Reject Request">
</form>
<!--
If the request has been accepted.
Show button to end the tenancy,
and property details
-->
@elseif($Tenancy->isTenancy())
<form method="POST" action="/account/tenancy//end">
<input type="submit" class="btn btn-primary" value="End Tenancy">
</form>
<h5>Currently in Tenancy with </h5>
<h5>Your property is </h5>
@endif <!-- End of current user vs this user-->
@endif <!-- Initial If-->
Correlating functions in Tenancy Model
public function hasRequestPending()
{
return $this->accepted == 0 && $this->request_sent == 1;
}
public function inTenancy()
{
return $this->accepted == 1 && $this->request_sent == 0;
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire