Filter Laravel 4-分页过滤器
有人知道我在视图中使用过滤结果后的Laravel分页时出错的原因吗 它在我的简单视图中工作得非常好,但是当我使用为其创建的表单过滤数据时。。。相同的分页不起作用 我的代码: 控制器:Filter Laravel 4-分页过滤器,filter,laravel-4,pagination,Filter,Laravel 4,Pagination,有人知道我在视图中使用过滤结果后的Laravel分页时出错的原因吗 它在我的简单视图中工作得非常好,但是当我使用为其创建的表单过滤数据时。。。相同的分页不起作用 我的代码: 控制器: public function filtro() { $keyword = Input::get('keyword'); $asignatura = Input::get('asignatura_id'); $nivel = Input::get('nivel_id'); $act
public function filtro()
{
$keyword = Input::get('keyword');
$asignatura = Input::get('asignatura_id');
$nivel = Input::get('nivel_id');
$actividades = Actividad::where('actividad', 'LIKE', '%'.$keyword.'%');
if($asignatura){
$actividades->where('asignatura_id', $asignatura);
}
if($nivel){
$actividades->where('nivel_id', $nivel);
}
$actividads = $actividades->orderBy('created_at', 'DES')
->paginate(10);
$id_user = Sentry::getUser()->id;
$fichas = Ficha::where('user_id', $id_user)->orderBy('created_at', 'DESC')->get();
$asignatura_clave = Asignatura::where('id', $asignatura)->first();
$asignatura_id = Asignatura::orderBy('nombre', 'asc')->lists('nombre','id');
$nivel_id = Nivel::orderBy('edad', 'asc')->lists('edad','id');
$nivel_clave = Nivel::where('id', $nivel)->first();
$user = User::find($id_user);
// Devuelve todas las actividades que estan relacionadas con alguna ficha.
$actividadEnFicha = Actividad::has('fichas')
->get();
//$asignaturas = Asignatura::all();
// return var_dump($actividadEnFicha);
return View::make('actividads.index')
->with('fichas', $fichas)
->with('user', $user)
->with('palabra_clave', $keyword)
->with('keyword', $keyword)
->with('nivel_id', $nivel_id)
->with('nivel_clave', $nivel_clave)
->with('asignatura_clave', $asignatura_clave)
->with('asignatura_id', $asignatura_id)
->with('actividadEnFicha', $actividadEnFicha)
->with('actividads', $actividads);//->with('asignaturas', $asignaturas);
}
我的视图中的分页代码:
{{ $actividads->links(); }}
消息错误:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
* @param array $others
* @return void
*
* @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
*/
protected function methodNotAllowed(array $others)
{
throw new MethodNotAllowedHttpException($others);
}
编辑:
我已经创建了这两条路线
Route::post('filtro',array('as'=>'filtro','uses'=>'ActividadController@filtro'));代码>和路由::get('filtro',array('as'=>'filtro','uses'=>'ActividadController@filtro'));代码>,分页工作正常
现在的问题是,当我切换到另一个页面(使用分页)时,我的过滤器被遗忘,它会将我的所有活动分页你知道为什么吗?这是我第一次尝试,可能我做的方式不对
知道发生了什么吗
谢谢 我有两个问题,第一个是在if
中,您应该分配新的结果。第二个参数在排序依据中,第二个参数应该是'DESC'
,而不是'DES'
。我认为第二个错误导致了你的问题
if($asignatura){
$actividades = $actividades->where('asignatura_id', $asignatura);
}
if($nivel){
$actividades = $actividades->where('nivel_id', $nivel);
}
$actividads = $actividades->orderBy('created_at', 'DESC')
->paginate(10);
希望这能解决你的问题
编辑
方法NotAllowedHttpException
通常是由不允许某些类型请求的路由引起的。分页链接使用GET
将页码发送到操作,我猜您不允许使用此方法在路由中使用GET
。我已使用会话解决了分页问题
我的问题是,当我通过分页更改页面时,所有内容都被重新加载,我的过滤器被遗忘。因此,我为每个过滤器创建了一个会话
,现在我可以通过分页来浏览过滤后的数据 请写出引起问题的代码我已经编辑了我的帖子!不@webNeat,我已经修复了“DESC”,但这不是问题…:(可以转储变量$actividades
?您是否有一些错误?我的意思是…分页显然有效。您可以看到数字:1,2,3,4,…但是,当您单击以更改页面时,它不起作用,并显示错误页面。您可以复制错误并将其添加到问题中吗?抱歉…您现在在帖子中看到了错误消息!