'Laravel like query not return correct?
Hello I am creating like query by passing array to function but my like query it return as I am passing this following array
$like = array(
"employee.Employee_Code" => $search . "~both",
"employee.Employee_Name" => $search . "~both",
"employee.Employee_Age" => $search . "~both",
"employee.Employee_Contact_No" => $search . "~both",
"employee.Department" => $search . "~both",
"employee.Salary_Grade" => $search . "~both",
"employee.Employee_Email" => $search . "~both"
);
my code:
foreach ($like as $key => $val) {
$v = explode("~", $val);
echo '<pre>';
echo $key;
print_r($v);
if ($v[0]!= "") {
if (isset($v[1])) {
if ($v[1]=='both') {
$query->where($key, "like", "'%".$v[0]."%'");
} else {
$query->where($key,"like","'%".$v[0]."%'");
}
} else {
$query->orWhere($key,"like","'%".$v[0]."%'");
}
}
}
Output:
employee.Employee_CodeArray
(
[0] => s
[1] => both
)
employee.Employee_NameArray
(
[0] => s
[1] => both
)
employee.Employee_AgeArray
(
[0] => s
[1] => both
)
employee.Employee_Contact_NoArray
(
[0] => s
[1] => both
)
employee.DepartmentArray
(
[0] => s
[1] => both
)
employee.Salary_GradeArray
(
[0] => s
[1] => both
)
employee.Employee_EmailArray
(
[0] => s
[1] => both
)
Array
(
[0] => Array
(
[query] => select `employee`.* from `employee` where `employee`.`Employee_Code` like ? and `employee`.`Employee_Name` like ? and `employee`.`Employee_Age` like ? and `employee`.`Employee_Contact_No` like ? and `employee`.`Department` like ? and `employee`.`Salary_Grade` like ? and `employee`.`Employee_Email` like ? order by `employee`.`isActive` desc, `employee`.`id` desc limit 10
[bindings] => Array
(
[0] => '%s%'
[1] => '%s%'
[2] => '%s%'
[3] => '%s%'
[4] => '%s%'
[5] => '%s%'
[6] => '%s%'
)
expected query as:
SELECT `employee`.*
FROM `employee`
WHERE `employee`.`Employee_Code` like '%s%'
AND `employee`.`Employee_Name` like '%s%'
AND `employee`.`Employee_Age` like '%s%'
AND `employee`.`Employee_Contact_No` like '%s%'
AND `employee`.`Department` like '%s%'
AND `employee`.`Salary_Grade` like '%s%'
AND `employee`.`Employee_Email` like '%s%' DESC
LIMIT 10
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|