Этот вопрос о том, как мне реализовать область, в которой пользователь будет запрашивать вознаграждение на определенном уровне, и как только он получит свои вознаграждения, в поле вознаграждения больше не будет отображаться вознаграждение, которое они потребовали.Так, например:
Пользователь находится на уровне 20, на его панели вознаграждений есть 3 доступных награды, требующих получения, уровня 10, 15 и 20. Таким образом, если пользователь получил награду уровня 10, он будетбольше не отображается на панели, за исключением наград 15 и 20 уровня.
Вот код для клинка:
@foreach(App\LevelRewards::getRewards()->get() as $rewards)
@if(Auth::user()->level >= $rewards->level_required || Auth::user()->level == $rewards->level_required)
@if(App\ClaimReward::claimLevel()->get())
<div class="col-lg-2 col-md-3 col-sm-6 col-xs-6" style="margin: 5px 0px;">
<div class="hovereffect">
<a href="#" class="d-block mb-4 h-100">
<input type ="hidden" name="id" value="{{$rewards->id}}"/>
<img class="img-responsive" src="{{asset('rewards_img/'.$rewards->picture)}}" alt="">
</a>
<div class="overlay">
<h2 style="font-size: 14px;">{{$rewards->details}}</h2>
@if($rewards->type == 'physical')
<button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#claimPhysical" data-details="{{$rewards->details}}" data-id="{{$rewards->id}}" data-level="{{$rewards->level_required}}" data-physical="{{$rewards->item_name}}">
CLAIM
</button>
@else
<button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target="#claimDigital" data-id="{{$rewards->id}}" data-level="{{$rewards->level_required}}" data-physical="{{$rewards->item_name}}">
CLAIM
</button>
@endif
</div>
<div style="background: #2d2d2d; padding: 9px;">
<span class="credits_top">Required Level: <span>{{$rewards->level_required}}</span></span>
<p>{{$rewards->item_name}}</p>
</div>
</div>
@endif
@endif
@endforeach
А это код модели ClaimReward для модели:
public function scopeClaimLevel2($query)
{
return $query->join('level_rewards','level_rewards.id','=','claim_rewards.reward_id')->select('level_rewards.*');
}
Будем весьма благодарны за любые ссылки и источники информации по этому вопросу.Спасибо.
Редактировать: я пытался;
public function scopeClaimLevel($query)
{
return $query->join('claim_rewards','claim_rewards.reward_id','=','level_rewards.id')->select('level_rewards.*');
}
public function scopeGetRewards($query)
{
return $query
->join('claim_rewards','claim_rewards.reward_id','=','level_rewards.id')
->whereDoesntHave('claimLevel', function (Builder $query) {
$query->where('claim_rewards.status', '=', '0');
})
->select('level_rewards.*');
}
Но там написано: вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: getRelated () '