检查laravel中是否至少有表单数据不为空



我正在laravel 5.6中构建一个搜索函数我有多个表单字段。搜索查询一切正常。在没有空表单数据的情况下,它返回数据库中的所有数据。我想检查是否至少有一个字段不为空以传递查询,否则我想返回错误。我怎么能在拉拉威尔做到这一点。提前感谢

if ($request->all() != '') {
// Search for  nursery based on their freeword.
if (!empty($request->input('description'))) {
$nursery->Where('description',  'LIKE', '%' . $request->input('description') . '%');
$nursery->orWhere('name',  'LIKE', '%' . $request->input('description') . '%');
} 

这将验证您所需的输入,如果有任何丢失,则会给出错误,否则将搜索

use IlluminateHttpRequest;
use AppHttpControllersController;
use IlluminateSupportFacadesValidator;
public function search(Request $request){
$validator = Validator::make($request->all(), [
'locations' => 'required',
'price'=>'required',
'age'=>'required',
'description'=>'required'
]
);
if ($validator->fails()) {
$response=array('status'=>'error','errors'=>implode(',', $validator->errors()->all()));
return response()->json($response, 400);
}else{
// your code here ...
$nursery->Where('description',  'LIKE', '%' . $request->input('description') . '%');
$nursery->orWhere('name',  'LIKE', '%' . $request->input('description') . '%');
// your code here ...
return response()->json(['status'=>'success','result'=>$result],200);
}
}
  1. 您可以通过以下链接创建自定义请求。您可以定义规则
  2. 您可以使用此处描述的validation方法
  3. 您可以使用$request->has('key')方法或empty($request->all())函数进行检查
  4. 您可以使用$value = $request->input('key', 'default value');来检查值或将默认值设置为变量
  5. 您可以使用如下when方法

参见示例:

$categoryId = $request->input('category_id', null);
$query = Product::query();
$query->when($categoryId, function ($q) use ($categoryId) {
return $q->where('category_id', $categoryId);
});
$query->get();

最新更新