2016-08-14 103 views
1

我試圖將Json插入到由Laravel中的雄辯所返回的現有json對象中。在Json中插入Json在PHP中Foreach

$fixtures = Fixture::where('week', $week)->get(); 
foreach($fixtures as $key => $fixture){ 
     $fixtureinfos = FixtureInfo::where('fixture_id', $fixture[$key]['id'])->get(); 
     $fixture[$key]['fixtureinfos'] = $fixtureinfos; 
} 

我收到錯誤「應用程序\夾具重載元素的間接修改沒有任何影響」

我應該如何被插入「$ fixtureinfos」到現有的「$夾具」?提前

+0

這可能與HTTP://計算器的.com /問題/ 20053269 /間接修飾-的過載元件-的-splfixedarray-HAS-無效應。即使它不是同一班,解決方法可能會有所幫助。 – Terminus

+0

總站,你是對的。這是相關的。我會發布解決方案。感謝您的幫助 – Diego

+0

我在你的問題中看不到任何[JSON](https://en.wikipedia.org/wiki/JSON)。 – axiac

回答

1

正如總站提到

謝謝,這是關係到this post

以下是本文中案例的解決方案。

$fixtures = Fixture::where('week', $week)->get(); 
foreach($fixtures as $key => $fixture){ 
    $fixtureinfos = FixtureInfo::where('fixture_id', $fixture[$key]['id'])->get(); 
    $arraytemp = $fixtures[$key]; 
    $arraytemp['fixtureinfos'] = $fixtureinfos; 
    $fixtures[$key] = $arraytemp; 
} 
1

你應該在這些表

在夾具模型之間的關係適用

function fixtureinfo(){ 
    return $this->belongsTo(FixtrureInfo::class); 
} 

在FixtureInfo模式

function fixture(){ 
    return $this->hasOne(Fixtrure::class); 
} 

然後在控制器中。您可以輕鬆地使用預先加載

$fixtures = Fixture::where('week', $week)->with('fixtureinfo')->get(); 

然後你就可以輕鬆地訪問fixtureinfo這樣

$fixtures[0]->fixtureinfo 

使用一個循環,如果你想