Laravel 4, Eloquents método de paginación
-
21-12-2019 - |
Pregunta
Hola!Estoy teniendo un problema al intentar usar el método paginate en un elocuente modelo.El problema es que llamar {{ $model->links() }}
en mi opinión, el archivo se me tiro un Call to undefined method Illuminate\Database\Query\Builder::links()
que en realidad no me consiguen en cualquier lugar debido a que funciona a la perfección en otro archivo de vista.
Controller.php
$data = Routine::whereHas('measurements', function($q)
{
$fra = str_replace("/","-", Input::get('fraDato'));
$fra = date('Y-m-d', strtotime($fra));
$til = str_replace("/","-", Input::get('tilDato'));
$til = date('Y-m-d', strtotime($til));
$q->whereBetween('date', array($fra, $til));
})->with('emps')->orderBy('date', 'time', 'title')->paginate(5);
return View::make('sok')
->with('title', 'Søk')
->with('date', $date)
->with('data', $data);
sok.blade.php
@if(isset($data))
<table>
<tr>
<td>ID</td>
<td>Tittel</td>
<td>Verdi</td>
<td>Ansatt ID</td>
<td>Dato</td>
<td>Tid</td>
<td>Basseng</td>
</tr>
@foreach($data as $data)
<tr>
<td>{{ $data->id }}</td>
<td>{{ $data->measurements[0]->title }}</td>
<td>{{ $data->value }}</td>
<td>{{ $data->emps->user_name }}</td>
<td>{{ date('d/m/Y', strtotime($data->date)) }}</td>
<td>{{ $data->time }}</td>
@foreach($data->measurements as $measurement)
<td>{{ $measurement->pivot->pool_id }}</td>
@endforeach
<td>{{ HTML::linkRoute('edit_data', 'Rediger', $data->id) }}</td>
<td>{{ HTML::linkRoute('delete_confirm', 'Slett', $data->id) }}
</td>
</tr>
@endforeach
{{ $data->links() }}
Gracias!
Solución
Usted anula $ datos en usted foreach:
@foreach($data as $data)
CAMBIARLO PARA EG.
@foreach($data as $dataItem)
y sugeriría usar nombres de variables significativos, por lo que no tendrás problemas como este. $ Los datos son tan genéricos, puedes nombrar todo con eso.Use $ rutinas en su lugar.
Otros consejos
¿Qué es esto?
->with('title', '$sok')
eso está vacío.
controler.php
$data = Routine::whereHas('measurements', function($q)
{
$fra = str_replace("/","-", Input::get('fraDato'));
$fra = date('Y-m-d', strtotime($fra));
$til = str_replace("/","-", Input::get('tilDato'));
$til = date('Y-m-d', strtotime($til));
$q->whereBetween('date', array($fra, $til));
})->with('emps')->orderBy('date', 'time', 'title')->paginate(5);
return View::make('sok')
->with('data', $data);
sok.blade.php
@if(isset($data))
<table>
<tr>
<td>ID</td>
<td>Tittel</td>
<td>Verdi</td>
<td>Ansatt ID</td>
<td>Dato</td>
<td>Tid</td>
<td>Basseng</td>
</tr>
@foreach($data as $items)
<tr>
<td>{{ $items->id }}</td>
<td>{{ $items->measurements[0]->title }}</td>
<td>{{ $items->value }}</td>
<td>{{ $items->emps->user_name }}</td>
<td>{{ date('d/m/Y', strtotime($data->date)) }}</td>
<td>{{ $items->time }}</td>
@foreach($items->measurements as $measurementItems)
<td>{{ $measurementItems->pivot->pool_id }}</td>
@endforeach
<td>{{ HTML::linkRoute('edit_data', 'Rediger', $data->id) }}</td>
<td>{{ HTML::linkRoute('delete_confirm', 'Slett', $items->id) }}
</td>
</tr>
@endforeach
{{ $items->links() }}