3

我不确定我是否可以正确解释这一点,但值得一试,因为我真的被卡住了。

我要做的是从 eventSchedule 表中获取与 url id 匹配的所有内容。在 eventSchedule 表中,我创建了一个名为 eventSponsors 的列,它是一个包含多个赞助商标题的字符串。我试图让选定的 eventSchedule 仅从 Sponsors 表中拉回列出的 eventSchedule.eventSponsors。我遇到的问题是每个 eventSchedule 都有多个赞助商,并且多个赞助商在不同的 eventSchedule 中被重用。所以我能在两张表之间找到的唯一共同因素是赞助商的标题。

eventScheduleSeeder

array(
        'id' => '1', 
        'eventSponsors' => 'Enterade Hammer_Nutrition Trek_Bicycle_Store Marathon_High Jacksonville_Running_Company Country_Rocks_the_Beach'
      ),

赞助商Seeder

 array(
            'id' => '7', 
            'title' => 'Hammer_Nutrition', 
            'src' => 'images/sponsors/hammer_logo.png', 
            'alt' => 'Sponsor - Hammer Nutrition', 
            'url' => 'http://www.hammernutrition.com/'
        ),

HTML

@foreach($eventDetails as $info)
 @foreach($eventSponsors as $sponsors)
<? if(strpos($info->eventSponsors, $sponsors->title) !== false){?>
   <p>{{$sponsors->src}}</p>
<?}?>
 @endforeach
@endforeach

我得到的结果只是第一个标题 Enterade 的 src。我阅读了 strpos() 并且我知道它只找到第一次出现或最后一次出现,但我不确定如何让标题字符串找到并拉回具有匹配标题的所有内容。

就像我说的,我不确定我是否在解释我需要什么,但我愿意回答并更详细地解释,以帮助尝试解决这个问题。我是 Laravel 的新手,真的可以使用帮助。谢谢。

4

1 回答 1

2

我不确定我是否真的理解你的问题,或者你为什么不使用关系......但我会试着回答

只是做这样的事情......

    $event = EventSchedule::find(1); //get first event

    $sponsors = explode(" ", $event->eventSponsors);

    $eventTitles = array();
    foreach($sponsors as $val){
      $eventTitles[] = Sponsors::where('title','=',$val)->get();
    }

    //Now your eventTitles array has all the associated sponsors for that event.

或者在你看来......

     @foreach($event as $val)
     <?php $titles = explode(" ", $val->eventSponsors);
     foreach($titles as $val2){
      $info = Sponsor::where('title','=',$val2)->first();
      echo $info->title;
      echo "<img src='".$info->src."'>";
     }?>
于 2013-06-25T03:16:11.503 回答