所以我想在我的视图中使用分页,但我总是得到一个错误Call to a member function paginate() on a non-object
,这是我的代码:
First my Action:
public function index()
{
$logs = DB::table('services')
->join('logs', function($join)
{
$join->on('services.id', '=', 'logs.service_id');
})
->get()->paginate(10); //here i got the error
return View::make('logs.index',array('logs'=> $logs,'title'=>'Service Logs'));
}
Then my view:
<table class="table table-striped table-bordered">
<thead>
<tr>
<td>Domain</td>
<td>Port</td>
<td>Checktime</td>
<td>Status</td>
<td>Responce</td>
</tr>
</thead>
<div class="container">
@foreach($logs as $key => $value)
<tr>
<td>{{ $value->domain }}</td>
<td>{{ $value->service_port }}</td>
<td>{{ $value->checktime }}</td>
<td class="text-center">
@if( $value->status == 'up' ) <img src="../img/up3.png" />
@elseif( $value->status == 'down' ) <img src="../img/down3.png" />
@else <img width="30" height="30" src="../img/warning_icon.png" />
@endif
</td>
<td>{{ $value->response_time }}</td>
</tr>
@endforeach
</div>
</table>
{{$logs->links();}}
所以,如果有人有任何想法,我将非常感激
在使用分页时不需要使用get
。你的查询应该是:
$logs = DB::table('services')->join('logs', function($join)
{
$join->on('services.id', '=', 'logs.service_id');
})->paginate(10);
事实上,你也可以删除闭包,因为这真的不是一个复杂的连接。
$logs = DB::table('services')
->join('logs', 'services.id', '=', 'logs.service_id')
->paginate(10);
从文档(http://laravel.com/docs/pagination)看来,正确的用法是:
$logs = DB::table('services')
->join('logs', function($join)
{
$join->on('services.id', '=', 'logs.service_id');
})
->paginate(10); //removed get()