2013-06-24 46 views
3

我不確定我是否可以解釋這個權利,但是值得一試,因爲我真的被卡住了。Laravel加入表

我想要做的是抓住事件日程表中匹配的網址ID的一切。在eventSchedule表中,我創建了一個名爲eventSponsors的列,它是一個具有多個贊助者標題的字符串。我試圖讓選定的eventSchedule只從Sponsors表中拉出列出的eventSchedule.eventSponosors。我遇到的問題是我有多個贊助商爲每個eventSchedule和多個贊助商在不同的eventSchedule中重新使用。所以我能找到的兩張表之間唯一的共同點就是sposnors的頭銜。

eventScheduleSeeder

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

sponsorsSeeder

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新手,可以真正使用幫助。謝謝。

+0

是什麼讓'{{$信息 - > eventSponsors}}'和'{{$ sponsors->標題}}'在循環之前的若?你能用'@if/@ endif'語法來嘗試嗎? –

+1

所以你說要改變我的語法爲@if(strpos($ info-> eventSponsors,$ sponsors-> title)!== false)

{{$ sponsor-> src}}

@ endif'我仍然當我需要總共返回6個時,獲得與'images/sponsors/enteradelogo.png'相同的結果。 – Rachael

+0

好的...關於我的第一個問題(在if語句前檢查'$ info-> eventSponsors'&'$ sponsor-> title'的內容)?這些價值是否與預期一致? –

回答

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."'>"; 
    }?> 
+1

非常感謝,這實際上有助於!我只需要調整一些東西。 ('id',Request :: segment(2)) - > get())' '在我看來 '<? $ raceSponsors = explode(「」,$ info-> eventSponsors); \t \t \t \t \t \t的foreach($ raceSponsors爲$ VAL) { $ sponsorTitles =贊助::其中( '標題', '喜歡',$ VAL) - >得到(); ($ sponsorTitles as $ val2) {?> Rachael