将带有参数的数组传递给 Codeigniter 4 中的模型
Passing array with parameters to Model in Codeigniter 4
我尝试将一组值从我的控制器传递到模型
我的控制器:
$arr_list = array('O','N','H');
$data['lista'] = $getmodel->query_list($arr_list1);
我的模型
public function query_list($list = '', $limit = 10, $lang = 'en')
{
$query = "SELECT tab1.id, name FROM tab_name";
$a = 0;
foreach( $list as $value)
{
if ($value != ''){
if ($a == 0){
$query .= " AND (field = '".$value."' ";
}
else
{
$query .= " OR field = '".$value."' ";
}
$a = $a + 1;
}
}
$query .= " ORDER BY RAND() ";
}
我收到错误:数组到字符串的转换
此代码在 CI 2 中完美运行,但在 CI4 中不起作用。
为什么?
你的代码中有很多错误,但我会尽力提供帮助。
生成一个 WHERE 字段 IN (‘item’, ‘item’) SQL 查询加入 AND 如果合适
$names = ['Frank', 'Todd', 'James'];
$builder->whereIn('username', $names);
// Produces: WHERE username IN ('Frank', 'Todd', 'James')
控制器
$this->data['return'] = $HotelModel->test(['1', '2', '3', '4']);
型号
public function test($array)
{
return $this->db->table('tab_name')->whereIn('column',$array)->get()->getResultObject();
}
结果last_query
SELECT * FROM 'tab_name' WHERE 'column' IN ('1', '2', '3', '4')
我尝试将一组值从我的控制器传递到模型
我的控制器:
$arr_list = array('O','N','H');
$data['lista'] = $getmodel->query_list($arr_list1);
我的模型
public function query_list($list = '', $limit = 10, $lang = 'en')
{
$query = "SELECT tab1.id, name FROM tab_name";
$a = 0;
foreach( $list as $value)
{
if ($value != ''){
if ($a == 0){
$query .= " AND (field = '".$value."' ";
}
else
{
$query .= " OR field = '".$value."' ";
}
$a = $a + 1;
}
}
$query .= " ORDER BY RAND() ";
}
我收到错误:数组到字符串的转换
此代码在 CI 2 中完美运行,但在 CI4 中不起作用。
为什么?
你的代码中有很多错误,但我会尽力提供帮助。
生成一个 WHERE 字段 IN (‘item’, ‘item’) SQL 查询加入 AND 如果合适
$names = ['Frank', 'Todd', 'James'];
$builder->whereIn('username', $names);
// Produces: WHERE username IN ('Frank', 'Todd', 'James')
控制器
$this->data['return'] = $HotelModel->test(['1', '2', '3', '4']);
型号
public function test($array)
{
return $this->db->table('tab_name')->whereIn('column',$array)->get()->getResultObject();
}
结果last_query
SELECT * FROM 'tab_name' WHERE 'column' IN ('1', '2', '3', '4')