Filter Laravel 4-分页过滤器

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

有人知道我在视图中使用过滤结果后的Laravel分页时出错的原因吗

它在我的简单视图中工作得非常好,但是当我使用为其创建的表单过滤数据时。。。相同的分页不起作用

我的代码:

控制器:

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,…但是,当您单击以更改页面时,它不起作用,并显示错误页面。您可以复制错误并将其添加到问题中吗?抱歉…您现在在帖子中看到了错误消息!