【发布时间】:2019-09-03 13:33:05
【问题描述】:
我的 if 语句很难读
ProjectController.php
public function index(Request $request)
{
$cats = Category::all();
$users = User::all();
if(!empty($request->project_name && $request->requester && $request->user_name && $request->status && $request->requester_tell))
{
$view = Project::where('project_name', 'like', '%'. $request->project_name .'%')->where('project_name', 'like', '%'. $request->requester .'%')->get();
} if(!empty($request->project_name && $request->requester && $request->user_name && $request->status))
{
$view = Project::where('project_name', 'like', '%'. $request->project_name .'%')->paginate(10)->get();
}else if(!empty($request->project_name && $request->requester && $request->user_name))
{
$view = Project::where('requester', 'like', '%'. $request->requester .'%')->paginate(10)->get();
} else if(!empty($request->project_name && $request->requester))
{
$view = Project::where('user_name', 'like', '%'. $request->user_name .'%')->paginate(10)->get();
} else if(!empty($request->project_name))
{
$view = Project::where('status', 'like', '%'. $request->status .'%')->paginate(10)->get();
} else if(!empty($request->project_name || $request->requester || $request->user_name || $request->status || $request->requester_tell))
{
$view = Project::where('requester_tell', 'like', '%'. $request->requester_tell .'%')->paginate(10)->get();
} else if(!empty($request->requester && $request->user_name))
{
} else if(!empty($request->status && $request->requester_tell))
{
} else if(!empty($request->requester && $request->requester_tell))
{
} else {
};
到目前为止我已经写了,但是我想知道是否有更好的写法 我想从数据库中拉取符合搜索条件的数据
原来都包含null
【问题讨论】:
-
empty 需要 1 个参数?
-
@vivek_23 在请求中获取一些参数
-
if(!empty($request->project_name && $request->requester && ... ))会执行吗?我认为它认为非空字符串为真。 -
另外,您检查
!empty($request->project_name && $request->requester && $request->user_name && $request->status && $request->requester_tell)并在查询中仅使用 2 个字段/列$view = Project::where('project_name', 'like', '%'. $request->project_name .'%')->where('project_name', 'like', '%'. $request->requester .'%')->get();? -
这绝对是使用
empty的错误方式。对于任何没有实际设置的变量/索引,这仍然会给你一个未定义的变量/索引通知。
标签: php laravel-5 laravel-5.8