Laravel不能使用Eloquent/Builder类型的对象作为数组

Gui*_*i O 2 mysql laravel eloquent

由于我现在正在使用laravel,我必须在界面上显示一些数据.但Laravel安装在计算机X上,数据库位于远程Y服务器上.出于测试目的,我试图从表中显示简单数据,下表的第一个信息:

站点: code_site varchar(255)主键

所以,这就是我如何做到的:

为database.php

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => '126.x.x.x',
    'database'  => 'MYNET',
    'username'  => 'mynet',
    'password'  => 'mypassword',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'port'      => '3308',
),
Run Code Online (Sandbox Code Playgroud)

模型/ Site.php

<?php

class Site extends Eloquent {
<empty because i don't need relations for now> }
Run Code Online (Sandbox Code Playgroud)

routes.php文件

Route::model('site', 'Site');
Route::get('liste_sites', array('uses' => 'HomeController@liste_sites', 'as' => 'liste_sites'));
Run Code Online (Sandbox Code Playgroud)

liste_sites.blade.php

@for ($i = 0 ; $i < count($sites); $i ++)
    <p>{{$sites[$i]->code_site}}</p>
@endfor
Run Code Online (Sandbox Code Playgroud)

HomeController.php

public function liste_sites() 
    {
        $sites = Site::select('code_site')
        ->orderBy('code_site','desc');

        return View::make('liste_sites', array( 'sites' => $sites, 'which_actif' => 1));
    }
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

Cannot use object of type Illuminate\Database\Eloquent\Builder as array
Run Code Online (Sandbox Code Playgroud)

是因为我的数据不可读吗?

Tim*_*wis 5

改变这一行:

$sites = Site::select('code_site')->orderBy('code_site','desc');
Run Code Online (Sandbox Code Playgroud)

对此:

$sites = Site::select('code_site')->orderBy('code_site','desc')->get();
Run Code Online (Sandbox Code Playgroud)

我很确定应该修复它.

基本上,在调用其中一个结束函数之前->get(),->paginate(10)或者->first()$ sites被视为Query,而不是Site对象数组,因此不能在视图中使用.希望有所帮助!