【发布时间】:2014-07-02 15:05:07
【问题描述】:
我知道这很简单.. 但我想我遗漏了一些东西,我收到了这个错误,我在发帖之前尝试了所有方法
Trying to get property of non-object
控制器
$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
);
}
return View::make( 'pages.server', compact( 'data' ) );
如果我转储代码,这就是我得到的
var_dump
array(10) {
[0]=>
array(6) {
["srv_id"]=>
string(3) "389"
["srv_name"]=>
string(3) "u02"
["srv_status"]=>
string(2) "ON"
["srv_files"]=>
string(5) "43832"
["srv_disk"]=>
string(9) "520.07 Gb"
["srv_ip"]=>
string(13) "89.39.196.138"
}
[1]=>
array(6) {
["srv_id"]=>
string(3) "392"
["srv_name"]=>
string(3) "u07"
["srv_status"]=>
string(2) "ON"
["srv_files"]=>
string(5) "42566"
["srv_disk"]=>
string(9) "495.16 Gb"
["srv_ip"]=>
string(13) "89.39.196.147"
}
查看 这就是我在页面中查看数组的方式
@foreach($data as $server)
<td>{{ $server['srv_id'] }}</td>
<td>{{ $server['srv_name'] }}</td>
【问题讨论】:
-
当您可以执行
$servers = Servers::all();,将compact('servers')传递给视图,然后执行@foreach ($servers as $server) ... @endforeach时,为什么还要遍历整个循环?更短,更容易阅读和维护。 :) -
我当然可以这样做,但是,我将一个元素包装在控制器中的一个函数中......并且我无法在我的视图中调用该函数
-
我认为该方法可能属于模型,那么。没关系,至少你把问题解决了。 :)