如果不是,则有关Laravel Blade Foreach循环中的错误

时间:2018-09-22 08:30:47

标签: laravel for-loop if-statement laravel-5.5 laravel-blade

我的代码关于foreach和if条件存在问题。当我将 else 代码块从foreach循环中拉出时,这没有问题,这是可行的。但是我在循环中放入了其他代码。否则不工作,也不显示任何东西。

我的目的是,程序检查是否要在total_bonuses数据表中使用过的user_id,如果我想显示商店论坛和用户添加到信息中的情况,我只想显示更新表单,如果total_bonuses中没有记录。似乎很复杂。

我的控制器代码在下面

public function show($lang=null, $id)
    {
        $bonuses = DB::table('reservations')
         ->select(DB::raw('SUM(bonus) as total_bonus, user_id'))
         ->where('user_id', '=', $id)
         ->groupBy('user_id')
         ->get();

         $dolars = DB::table('reservations')
         ->select(DB::raw('SUM(dolar) as dolar, user_id'))
         ->where('user_id', '=', $id)
         ->groupBy('user_id')
         ->get();

         $confirmeds = DB::table('reservations')
         ->select(DB::raw('SUM(confirmation) as confirmed, user_id'))
         ->where('confirmation', '=', 1)
         ->where('user_id', '=', $id)
         ->groupBy('user_id')
         ->get();

        $user = DB::table('users')->find($id);
        $totals = DB::table('total_bonuses')->where('user_id', '=', $id)->get();
        return view('wallet.show', compact('totals', 'user', 'bonuses', 'dolars', 'confirmeds'));

    }

查看代码在下面

@foreach ($totals as $total)
@if ($total->new_dollar !== NULL) 
<div class="col-12"><a href="javascript:void(0)" class="link"><i class="mdi mdi-check-circle text-success"></i> <font class="font-medium"> {!! $total->new_dollar !!}
 Remaining Dollar</font></a></div>
@endif

                                    </div>
                                </center>
                            </div>
                            <div>
                    </div>

                        </div>
                    </div>
                    <!-- Column -->

                    <!-- Column -->

                    <div class="col-lg-8 col-xlg-9 col-md-7">
                        <div class="card">

@if (count($total->user_id) === 1)
<br>
<br>
    <label class="col-md-12"><h4>  Paid Dollar</h4></label>
<form class="form-horizontal form-material" method="POST" action="{{ route ('total.update', ['lang' => App::getLocale(), 'id' => $total->id]) }}">

         {{ csrf_field() }}
        <input type="hidden" name="_method" value="PATCH">
        <input type="hidden" name='id' value='{!! $total->id !!}'>
        <input type="hidden" name='user_id' value='{!! $user->id !!}'>
    <div class="form-group">
        <label class="col-md-12">Total Dollar</label>
        <div class="col-md-12">
            <input name="old_dollar" type="text" value="{!! $total->new_dollar !!}" class="form-control form-control-line" readonly>
        </div>
    </div>
    <div class="form-group">
        <label class="col-md-12">Paid Dollar</label>
        <div class="col-md-12">
            <input name="paid_dollar" type="text" class="form-control form-control-line">
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-12">Note (Optionally! Not Required)</label>
        <div class="col-md-12">
            <input name="bonus_note" type="text" class="form-control form-control-line">
        </div>
    </div>
            <input name="moderator_id" type="hidden" value="{{ Auth::user()->id }}">
    <div class="form-group">
        <div class="col-sm-12">
            <button class="btn btn-success" type="submit">{{ __('profile.update')}}</button>
        </div>
    </div>
</form>

@else

<form class="form-horizontal form-material" method="POST" action="{{ route ('total.store', ['lang' => App::getLocale()]) }}">
{{ csrf_field() }}
<input type="hidden" name='user_id' value='{!! $user->id !!}'>
    <div class="form-group">
        <label class="col-md-12">Total Dollar</label>
        <div class="col-md-12">
            <input name="old_dollar" type="text" value="@foreach ($dolars as $dolar)
    {{ $dolar->dolar }}
@endforeach" class="form-control form-control-line" readonly>
        </div>
    </div>
    <div class="form-group">
        <label class="col-md-12">Paid Dollar</label>
        <div class="col-md-12">
            <input name="paid_dollar" type="text" class="form-control form-control-line">
        </div>
    </div>

    <div class="form-group">
        <label class="col-md-12">Note (Optionally! Not Required)</label>
        <div class="col-md-12">
            <input name="bonus_note" type="text" class="form-control form-control-line">
        </div>
    </div>
            <input name="moderator_id" type="hidden" value="{{ Auth::user()->id }}">
    <div class="form-group">
        <div class="col-sm-12">
            <button class="btn btn-success" type="submit">{{ __('profile.update')}}</button>
        </div>
    </div>
</form>
@endif

@endforeach

最良好的祝愿。

1 个答案:

答案 0 :(得分:0)

您提供的视图中的问题在于if条件。在这里,您尝试计算不可能的用户ID:-

@if (count($total->user_id) === 1)    

将上面的代码更改为

@if (count($total) === 1)