Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Laravel按连接值排序与分页的多对多关系_Sorting_Laravel_Model - Fatal编程技术网

Sorting Laravel按连接值排序与分页的多对多关系

Sorting Laravel按连接值排序与分页的多对多关系,sorting,laravel,model,Sorting,Laravel,Model,假设每个用户都有域,我希望能够以表格格式显示这些域 作为一个用户,我应该能够按照域属性进行排序 域属性包括可排序的实体,如页面排名 在laravel中,我获取了一组与当前登录用户相关的域,如下所示: $users = User::with(array('domains' => function($query) { // $query->where('name','like','%all%'); //

假设每个用户都有域,我希望能够以表格格式显示这些域

作为一个用户,我应该能够按照域属性进行排序

域属性包括可排序的实体,如页面排名

在laravel中,我获取了一组与当前登录用户相关的域,如下所示:

            $users = User::with(array('domains' => function($query)
            {
//                    $query->where('name','like','%all%'); //subquery filter

            }))->whereId(Session::get('user')['id'])->first();


        if(isset($sort))
        {
            //What goes here?
        }
我可以这样评价结果:

 $domains = $users->domains;

$collection = Paginator::make($domains->toArray(), $page, $pagesize);
要获得结果集,我将执行以下操作:

$collection->getItems();

如何对域结果应用筛选器以按特定值进行排序?

因此,我键入了此消息,并决定尝试以下操作:

public function listView()
    {

        $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; // default desc
        $page = Input::get('page') ? Input::get('page') : 1; // default 1

        $model = new Domain;

        $pagesize = Input::get('pagesize');


        if(isset($pagesize))
        {
            if($pagesize == 'all')
            {
                $pagesize = count($model::all());
            }elseif(!is_numeric($pagesize))
            {
             $pagesize =  DomainsController::$default_pagesize;
            }
        }else{
            $pagesize =  DomainsController::$default_pagesize;
        }




        $users = User::with(array('domains' => function($query)
            {
                $sort = Input::get('sort') ? Input::get('sort') : NULL; // default NULL
                $order = Input::get('order') ? Input::get('order') : 'DESC'; // default DESC
                if(isset($sort))
                {
                    $query->orderBy($sort, $order);
                }

            }))->whereId(Session::get('user')['id'])->first();





        $queries = DB::getQueryLog();
        $last_query = end($queries);



        $domains = $users->domains;




        $queries = DB::getQueryLog();
        $last_query = end($queries);
        var_dump($last_query);

        $collection = Paginator::make($domains->toArray(), $page, $pagesize);


        $data = array(
            'totalCount' => count($domains),
            'pageSize' => $collection->getPerPage(),
            'numberOfPages' => $collection->getLastPage(),
            'currentPage' => $collection->getCurrentPage(),
            'startNumber' => $collection->getFrom(),
            'endNumber' => $collection->getTo(),
            'results' => $collection->getItems(),
            'sortstr'=>((Input::get('pagesize')) ==  '' ? '' : '&pagesize='.(Input::get('pagesize'))).'&order='.($order == 'asc' || null ? 'desc' : 'asc'),
            'querystr'=>(Input::get('pagesize')) ==  '' ? '' : '&pagesize='.(Input::get('pagesize')).'&order='.(Input::get('order') == '' ? 'desc' : (Input::get('order')))
        );


        $this->layout->content = View::make('pages.domains.list',$data);
    }
这是工作代码

为了回答我自己的问题,我遇到的问题只是$sort值无法从函数SEE function($query)访问