繁体   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