【问题标题】:Getting a value from another two models at the same time in Laravel在 Laravel 中同时从另外两个模型中获取值
【发布时间】:2019-09-18 17:43:00
【问题描述】:

基本上我在控制器中有一个函数

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

【问题讨论】:

  • 请添加你的 foreach 循环
  • 我已经完成了
  • 您想在循环事件时从 Club 模型中获取 slug 对吗?如果是这样,那么 Club 和 Events 模型之间的关系是什么?
  • 一个俱乐部可以有很多活动,而一个活动只有一个俱乐部。所以事件表有一个club_id列

标签: php laravel eloquent


【解决方案1】:

在事件模型中与俱乐部建立一对一的关系,如下所示:

/**
 * @return \Illuminate\Database\Eloquent\Relations\HasOne
 */
public function club()
{
    return $this->hasOne(Club::class);
}

然后像这样在视图中调用它:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-18
    • 2021-10-02
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多