在 Laravel 中同时从另外两个模型中获取值

基本上我在控制器中有一个功能,它是


public function get_all_clubs($city)

{

    $city           = ucwords($city);

    $city_des       = Town::where('town', $city)->value('town_desc');

    $clubs          = Club::get()->where('city', $city)->where('profile_enabled', '1');

    $events         = Event::where('club_id', $clubs->first()->id)->get();

    $lowercase_city = Str::lower($city);

    return view('frontend.pages.allclubs', compact('clubs', 'lowercase_city', 'city_des', 'events', 'flag'));

}

正如您可能已经想到的那样,事件和俱乐部表使用 id 相关联。我已经能够根据 club_id 获得与城市相关的事件。在我看来,我正在使用 @foreach Laravel 语法来呼应每个事件。然而问题是我需要为我的视图上的每个事件创建一个超链接。路线的结构如下:


<a href="{{ route('event.show_event', [$club->slug, $event->slug]) }}">

实际上,我需要传递我已经拥有的$ event->slug 以及$club->slug这就是我的问题,我如何在我的@foreach 循环中获取这个变量。请注意,我是一名中级 Laravel/php 开发人员。


我的看法如下


@foreach ($events as $event)

@if ( ( (strtotime((str_replace('/', '-', $event->date))))  >= (strtotime("today")) ) && ($event->event_private))

  @php $flag='1'; @endphp

      <li>                                     

         <div class="widget-posts-body">

            <a href= "">  <h6 class="widget-posts-title">  {{$event->title}}  </h6>  </a>


         </div>

      </li>

@endif

@if ( ($loop->index) == '10' )

    @break

    @endif

    @endforeach


@if($flag != '1')

    <li>

        <p> There are no events live at this time. Please check back later</p>                 

    </li>

@endif


交互式爱情
浏览 152回答 1
1回答

哔哔one

在事件模型中与俱乐部建立一对一的关系,如下所示:/**&nbsp;* @return \Illuminate\Database\Eloquent\Relations\HasOne&nbsp;*/public function club(){&nbsp; &nbsp; return $this->hasOne(Club::class);}然后像这样在视图中调用它:<a href="{{ route('event.show_event', [$event->club->slug, $event->slug]) }}">
打开App,查看更多内容
随时随地看视频慕课网APP