Laravel未定义索引显示数组值错误

时间:2015-06-13 10:17:52

标签: php mysql laravel-4

我使用的是Laravel 4.2。我有两个mysql表OwnTable,OtherTable。我通过php从这些表中成功获取值。

我的进一步PHP代码如下所示,在blade php中显示值,

if (!empty ($OwnTable)){
            foreach($OwnTable as $owntbl){
                $Finalvalue['OwnValue']['Name'] = $owntbl->Name;
            }
        }
if (!empty ($OtherTable)){
            foreach($OtherTable as $othertbl){
                $Finalvalue['OtherValue']['Name'] = $othertbl->Name;
            }
        }

 $myData = array('Finalvalue' => $Finalvalue);
 if(.....) {
    return View::make('display')->with('myData', $myData);
 }

display.blade中的代码如下所示,

            <tbody>     
                @foreach($myData['Finalvalue'] as $res)
                    <tr>
                        <td>{{{$res['OwnValue']['Name']}}}</td>
                        <td>{{{$res['OtherValue']['Name']}}}</td>
                     </tr>
                @endforeach     
            </tbody>  

当我尝试运行代码时,它会出现错误&#39; Undefined index:OwnValue&#39;。

我确信我在数组处理方面犯了一些错误。我在阵列处理方面不是很有天赋。非常感谢有人建议我这个。谢谢: - )

1 个答案:

答案 0 :(得分:1)

根据经验,使用var_dump调试并查看代码中不同位置的数组的外观。例如,你可以看到$res在视图中的foreach循环中的样子,看看为什么你有任何未定义的索引。

总的来说,你的代码看起来有点复杂,但我会把它放在一边。你正在为同一个键设置不同的值,添加空括号表示你要将新值推送到数组:

foreach($OwnTable as $owntbl){
    $Finalvalue['OwnValue']['Name'][] = $owntbl->Name;
}

您甚至可以使用旧密钥(如果重要):

foreach($OwnTable as $key => $owntbl){
    $Finalvalue['OwnValue']['Name'][$key] = $owntbl->Name;
}

请注意,Blade在视图中只需要两对大括号(目前您有3对)。

所以是的,使用var_dump跟踪数组的状态,找出出错的地方。