Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql codeigniter 4查询生成器类存在问题_Mysql_Codeigniter 4_Codeigniter Query Builder - Fatal编程技术网

Mysql codeigniter 4查询生成器类存在问题

Mysql codeigniter 4查询生成器类存在问题,mysql,codeigniter-4,codeigniter-query-builder,Mysql,Codeigniter 4,Codeigniter Query Builder,在终端上,在mysql中,运行以下查询会得到这个结果 mysql> SELECT DISTINCT(city) FROM outlets_data; +-----------+ | city | +-----------+ | Paris | | New York | | Kolkata | | Moscow | | Mumbai | | Hyderabad | | Delhi | | Chennai | +-----------+ 8 ro

在终端上,在mysql中,运行以下查询会得到这个结果

mysql> SELECT DISTINCT(city) FROM outlets_data;
+-----------+
| city      |
+-----------+
| Paris     |
| New York  |
| Kolkata   |
| Moscow    |
| Mumbai    |
| Hyderabad |
| Delhi     |
| Chennai   |
+-----------+
8 rows in set (0.00 sec)
我想将这些城市的名称以数组的形式存储在codeigniter 4模型类文件中

Models/DashboardModels.php

<?php

namespace App\Models;

use CodeIgniter\Model;

class DashboardModel extends Model
{
    protected $table      = 'outlets_data';
    protected $primaryKey = 'shop_id';

    public function not_defined_yet()
    {
        $city_names = $this->select('city')->distinct(); // This should be equivalent to "SELECT DISTINCT(city) FROM outlets_data";
        
        return $city_names;
    }
}
<?php

namespace App\Controllers;

use App\Models\DashboardModel;

use CodeIgniter\Model;

class Home extends BaseController
{
    public function index()
    {
        $model = new DashboardModel();
        $data['undefined'] = $model->not_defined_yet();

        echo view('dashboard', $data);
    }
}
 <?php echo "<pre>";  print_r($undefined); echo "</pre>"; ?>


我希望在输出数组中获取城市名称,但我将整个数据库作为关联数组获取。

您的函数应该是:

$data['undefined'] = $model->not_defined_yet()->findAll();
那么你的功能是什么

public function not_defined_yet()
{

    $db         = \Config\Database::connect();
    $builder    = $db->table('outlets_data');
    $city_names = $builder->select('city')->distinct(); 
    
    return $city_names->resultArray();
}
另一种方法是加载数据库对象的新实例

$data['undefined'] = $model->select('city')->distinct()->findAll();
您甚至可以一起删除该功能,并在控制器中执行以下操作:

这将得到相同的精确结果

$data['undefined'] = $model->select('city')->distinct()->findAll();