簡體   English   中英

如果在foreach循環中聲明

[英]If statement within a foreach loop

我正在嘗試創建一個基本的約會系統。 當用戶登錄時, if語句應該顯示他們的個人約會,但此時它正在顯示每個人的約會。

if語句的目的是檢查其用戶ID,以查看是否有任何使用此用戶ID的約會並顯示這些約會

我的appointments表有一個user_id ,我的users表只有一個常規id

@section('content')
    <h1>Your Appointments</h1>
    @foreach ($appointments as $appointment)
        @if ($appointment->user->id == $appointment->user_id)
            <p>
                <a href="{{url('details/'.$appointment->id)}}" >{{$appointment->doctor->name}} : {{$appointment->time}} : {{$appointment->date}}</a>        
            </p>
        @endif
    @endforeach
@endsection

我們可以通過選擇與經過身份驗證的用戶相關的約會來減少視圖中的邏輯,而不是使用這個嵌套的if語句,因此在控制器中而不是傳遞我們將要執行的所有約會:

$appointments = Appointment::where('user_id', Auth::user()->id);

因此在您的視圖中,您只能使用foreach($appointments as $appointment)循環播放它們,而無需檢查約會是否與當前用戶相關。

它將始終顯示每個約會,因為您正在將appointment相關的user->id與相同的appointment->user_id

我相信您應該更改您的if語句並將其與登錄的用戶會話ID進行比較,如下所示:

$logged_user_id = Auth::user()->id;

@if ($logged_user_id == $appointment->user_id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM