Laravel 如何将视图数组从控制器传递到视图

Laravel 如何将视图数组从控制器传递到视图,laravel,laravel-4,Laravel,Laravel 4,我知道这很简单。。但我想我遗漏了一些东西,我得到了这个错误,我在这里发布之前尝试了一切 Trying to get property of non-object 控制器 如果我将代码转储,这就是我得到的 瓦鲁垃圾场 看法 这是我在页面中查看数组的方式 @foreach($data as $server) <td>{{ $server['srv_id'] }}</td> <td>{{ $server['srv_name'] }}</td

我知道这很简单。。但我想我遗漏了一些东西,我得到了这个错误,我在这里发布之前尝试了一切

Trying to get property of non-object 
控制器

如果我将代码转储,这就是我得到的

瓦鲁垃圾场

看法 这是我在页面中查看数组的方式

@foreach($data as $server)
    <td>{{ $server['srv_id'] }}</td>
    <td>{{ $server['srv_name'] }}</td>

获取非对象错误消息的Trying to get属性的原因是$temp中的数据是一个数组,而您试图将其作为对象访问。试试这个

$temp = Servers::all();
$data = array();
foreach ($temp as $key) {
    $data[] = array(
        'srv_id'     => $key['srv_id'],
        'srv_name'   => $key['srv_name'],
        'srv_status' => $key['srv_status'],
        'srv_files'  => $key['srv_files'],
        'srv_disk'   => $this->ConvertBytes( $key['srv_disk'] ),
        'srv_ip'     => $key['srv_ip']
    );
}
可以通过以下方式访问阵列:

$foo['bar'];
$foo->bar;
虽然可以像这样访问对象:

$foo['bar'];
$foo->bar;

既然可以只做$servers=servers::all;,为什么还要经历整个循环呢;,将compact'servers'传递给视图,然后将@foreach$servers作为$server执行@endforeach?更短,更易于阅读和维护:当然我可以这样做,但是,我将一个元素包装在控制器中的函数中。。我不能在我的视图中调用该函数,我认为该方法可能属于模型。没关系,至少你把问题解决了