Php Laravel:搜索或筛选集合
我在筛选或搜索集合时遇到此问题 检查url中的代码 我试图做的是通过get方法过滤集合(当然是从url) 但只有当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
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=newbrand代码>lineHI 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();