Php Laravel 4-查询生成器-无法使用分页和where子句
我有一个应用程序需要根据用户的动态选择从数据库中获取数据。Php Laravel 4-查询生成器-无法使用分页和where子句,php,laravel-4,eloquent,query-builder,Php,Laravel 4,Eloquent,Query Builder,我有一个应用程序需要根据用户的动态选择从数据库中获取数据。 这是我的控制器代码: $invoice_query = DB::table('invoices')->select('invoices.title', 'invoices.created_at', 'invoices.id', 'invoices.status', 'clients.first_name', 'clients.last_name')->join('clients', 'invoices.client_id',
这是我的控制器代码:
$invoice_query = DB::table('invoices')->select('invoices.title', 'invoices.created_at', 'invoices.id', 'invoices.status', 'clients.first_name', 'clients.last_name')->join('clients', 'invoices.client_id', '=', 'clients.id');
if( Input::has('status') && ( $status = Input::get('status') ) != "" )
{
$invoice_query->where('status', '=', $status);
}
if( Input::has('client') && ( $client_id = Input::get('client') ) != "" )
{
$invoice_query->where('client_id', '=', $client_id);
}
$invoice_query->paginate(1);
$data['invoices'] = $invoice_query->get();
$data['total_invoices'] = 4;
$this->layout->content = View::make('backend.invoices.index', $data);
这是一种观点:
@foreach( $invoices as $invoice )
<tr>
<td>{{ $invoice->created_at }}</td>
<td>{{ $invoice->first_name }} {{ $invoice->last_name }}</td>
<td>{{ $invoice->title }}</td>
<td>
@if( $invoice->status == 0 )
<span style="color: red; font-weight: bold;">Da pagare</span>
@else
<span style="color: green; font-weight: bold;">Pagato</span>
@endif
</td>
<td>
<div class="btn-group">
<a class="btn btn-warning" style="color: #FFF;" href="{{ url('invoices/'.$invoice->id.'/edit') }}">Modifica</a>
<a class="btn btn-danger" style="color: #FFF;" href="{{ url('invoices/'.$invoice->id) }}">Cancella</a>
</div>
</td>
</tr>
@endforeach
{{ $invoices->links() }}
我认为问题可能是:
$data['invoices'] = $invoice_query->get();
因此,我删除了->get()
,但在本例中,我得到:
错误例外
Trying to get property of non-object (View: /var/www/fatture/app/views/backend/invoices/index.blade.php)
我不知道怎么了,你能帮我吗
注意:如果我使用:
$data['invoices'] = Invoices::join('clients', 'invoices.client_id', '=', 'clients.id')->paginate( 1, array('invoices.title', 'invoices.created_at', 'invoices.id', 'clients.first_name', 'clients.last_name') );
一切正常,但我不知道如何添加where问题是将值分配给变量 删除->get()并将替换为分页
$data['invoices'] = $invoice_query->paginate(1);
当我们犯了一个小错误时就会发生:)
$data['invoices'] = $invoice_query->paginate(1);