I want to have Repository class that can execute every 'SELECT' query
that I enter in it, random query from outside.
And I dont want to specify columns that I want to get from this native query.

通常,每个人都会使用以下代码:

$sql = 'select column_one, column_two from table';

$rsm = new ResultSetMapping();
$rsm->addScalarResult('column_one', 'columnOne');
$rsm->addScalarResult('column_two', 'columnTwo');

$query = $this->getEntityManager()->createNativeQuery($sql, $rsm);
$result = $query->getResult();

But in my case I can't specify 'column_one' or 'column_two',
because sql query and columns will be different.
And without $rsm->addScalarResult('column_one', 'columnOne') I don't get any results.

如何在不指定列的情况下获得结果

推荐答案

如果您不想配置预定义的结果集,则应该像下面的示例那样进行配置:https://symfony.com/doc/current/doctrine.html#querying-with-sql

$conn = $this->getEntityManager()->getConnection();

$sql = '
        SELECT * FROM product p
        WHERE p.price > :price
        ORDER BY p.price ASC
        ';

$resultSet = $conn->executeQuery($sql, ['price' => $price]);

// returns an array of arrays (i.e. a raw data set)
return $resultSet->fetchAllAssociative();

我认为NativeQuery不能满足您的需求,因为它依赖于将结果映射到已知实体的 idea .如果您事先不知道查询是什么,那么就无法进行映射.

Php相关问答推荐

无法使用PHP DomDocument找到IMG元素

PHP Array to Powershell exec命令Args

使用WooCommerce本机产品短码时不考虑价格筛选(_SHORT CODE)

如何删除WordPress用户的个人资料描述或其他个人资料字段中的链接?

在AJAX请求后,Laravel重定向.(不允许使用方法)

Laravel Livewire如何在数组值上使用IF、ELSE条件

闭包绑定$This和垃圾收集器

在PHP中循环访问多维数组,并按组显示内容

WordPress:今天的计数';修改和发布的帖子

添加不存在的订单元数据以扩展WooCommerce针对特定产品的管理订单搜索

$this->;db->;update();CodIgnitor中的功能不工作

更改特定产品标签的 Woocommerce 产品名称

从 XAMPP 运行 shell 脚本时,意外标记(附近出现语法错误

PHP访问子数组列表出错结果和长度

如何处理 Null 上的 array_shift() ?

如何在 Laravel 迁移中使用日期时间和天数?

使用动态地址和动态文件创建zip文件并获取zip文件链接

WooCommerce单个产品页面上启用额外选项卡的产品元框字段

如何从 PHP 中的字符串位置排除图像扩展名

使用 OOP PHP 创建动态 WHERE 子句.如何实现 BETWEEN 运算符?