Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Php Laravel:搜索或筛选集合_Php_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php Laravel:搜索或筛选集合

Php Laravel:搜索或筛选集合,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,我在筛选或搜索集合时遇到此问题 检查url中的代码 我试图做的是通过get方法过滤集合(当然是从url) 但只有当Input::get('category')有值时,它才起作用,否则什么都不起作用 你能检查一下代码并告诉我需要修复什么吗 谢谢 ====真实代码,以防将来链接断开(已编辑)============= 公共函数anyIndex(){ $id=Input::get('id'); $brand=brand::firstOrNew(数组('id'=>$id)); $paginate=Mis

我在筛选或搜索集合时遇到此问题

检查url中的代码

我试图做的是通过get方法过滤集合(当然是从url) 但只有当
Input::get('category')
有值时,它才起作用,否则什么都不起作用

你能检查一下代码并告诉我需要修复什么吗

谢谢

====真实代码,以防将来链接断开(已编辑)=============

公共函数anyIndex(){
$id=Input::get('id');
$brand=brand::firstOrNew(数组('id'=>$id));
$paginate=Misc::getSettings('admin-pagination');
$page\u no=isset($\u GET['page'])?$\u GET['page']:1;
$i=($paginate*$页码)-($paginate-1);
$appends=false;
$newBrands=新品牌;
if(输入::get('category')){
$brandCat=BrandCategory::find(输入::get('category');
$newBrands=$brandCat->brands();
$appends['category']=Input::get('category');
}
if(输入::get('status')){
$status=Input::get('status')=='published'?1:0;
$newBrands->where('is_active','=',$status);
$appends['status']=Input::get('status');
}
if(输入::get('order_by')| |输入::get('order')){
if(输入::get('order_by')){
$order_by=Input::get('order_by');
$appends['order_by']=Input::get('order_by');
}否则{
$order_by='name';
}
if(输入::get('order')){
$order=Input::get('order');
$appends['order']=Input::get('order');
}否则{
$order='asc';
}
$order=Input::get('order')?Input::get('order'):'asc';
$newBrands->orderBy($order\u by,$order);
}
$brands=$newBrands->paginate($paginate);
$brand_categories_list=新品牌类别;
$selected_cats=array();
如果($id!=“”){
$selected_cats=$brand->categories->list('id');
}
返回视图::make('admin.brands.index'))
->带(数组)(
“选定的_猫”=>$selected_猫,
“品牌”=>$brand,
“品牌”=>$brands,
“品牌分类列表”=>$brand\u categories\u list->list('name','id'),
“appends”=>$appends,
“i”=>i美元
));
}

多亏了戴夫。。我把它解决为:

    public function anyIndex() {
    $id = Input::get('id');
    $brand = Brand::firstOrNew(array('id' => $id));
    $paginate = Misc::getSettings('admin-pagination');
    $page_no = isset($_GET['page']) ? $_GET['page'] : 1;
    $i = ($paginate * $page_no) - ($paginate - 1);
    $appends = false;


    if (Input::has('category')) {
        $brandCat = BrandCategory::find(Input::get('category'));
        $newBrands = $brandCat->brands();
        $appends['category'] = Input::get('category');
    } else {
        $newBrands = Brand::limit(-1);
    }
    if (Input::has('status')) {
        $status = Input::get('status') == 'published' ? 1 : 0;
        $newBrands->where('is_active', '=', $status);
        $appends['status'] = Input::get('status');
    }
    if (Input::has('order_by') || Input::has('order')) {
        if (Input::has('order_by')) {
            $order_by = Input::get('order_by');
            $appends['order_by'] = Input::get('order_by');
        } else {
            $order_by = 'name';
        }
        if (Input::has('order')) {
            $order = Input::get('order');
            $appends['order'] = Input::get('order');
        } else {
            $order = 'asc';
        }
        $order = Input::get('order') ? Input::get('order') : 'asc';
        $newBrands->orderBy($order_by, $order);
    }else{
        $newBrands->orderBy('name', 'asc');
    }


    $brands = $newBrands->paginate($paginate);
    /* $queries = DB::getQueryLog();
      $last_query = end($queries);
      dd($last_query); */
    $brand_categories_list = new BrandCategory;
    $selected_cats = array();
    if ($id != "") {
        $selected_cats = $brand->categories->lists('id');
    }
    return View::make('admin.brands.index')
                    ->with(
                            array(
                                'selected_cats' => $selected_cats,
                                'brand' => $brand,
                                'brands' => $brands,
                                'brand_categories_list' => $brand_categories_list->lists('name', 'id'),
                                'appends' => $appends,
                                'i' => $i)
    );
}

我怀疑这与你如何使用雄辩有关。如果对象是使用“new”关键字创建的,则不能简单地将方法应用于该对象

如果您使用一个方法静态地创建它,它将起作用

$newBrands = Brand::limit(100);

// This will work
$newBrands->where('is_active', '=', $status);
Fluent(DB)的工作方式也一样

$newBrands = DB::table('brands');

// This wil work
$newBrands->where('is_active', '=', $status);

在这里,我根据显示名、全名或电子邮件搜索用户名。因此,
$request->filled('name of your input')
就是解决方案

 $usernames = (new User())->newQuery(); //where User is the model
        if($request->filled('email')){
            $usernames->orWhere('email',$request->email);
        }
        if($request->filled('full_name')){
            $usernames->orWhere('full_name',$request->full_name);
        } if($request->filled('display_name')){
            $usernames->orWhere('display_name',$request->display_name);
        }
 $usernames = $usernames->pluck('username')->toArray();

类别是必需的还是可选参数?@delmadord感谢您的快速回复。。它是可选的…你有错误吗?如果是这样的话,你能把错误粘贴到这里吗?我没有“得到任何错误,它只是无法”解决分类问题。我怀疑问题是否出在这个
$newBrands=newbrandlineHI dave。。谢谢你的回答。。你是对的。。但你会像我一样解决这个问题吗?如果照你上面说的做,它也不会像预期的那样起作用。。请告诉我解决办法是什么我把这个答案标记为正确的,因为它指导了我很多。。谢谢你,戴夫。。我也会发布我的答案。。
 $usernames = (new User())->newQuery(); //where User is the model
        if($request->filled('email')){
            $usernames->orWhere('email',$request->email);
        }
        if($request->filled('full_name')){
            $usernames->orWhere('full_name',$request->full_name);
        } if($request->filled('display_name')){
            $usernames->orWhere('display_name',$request->display_name);
        }
 $usernames = $usernames->pluck('username')->toArray();