laravel - 使用一个不同的列获取查询,Laravel
问题描述
在customer_names
我得到一个值数组,从那里我只想得到第一个created_at
值。使用我当前的代码,我得到多行,其中的所有值来自customer_names
.
$query = $this->customer->newQuery()->select(
'customers.id',
'customers.sage_id',
'customers.account_name',
'customer_names.name as name',
'customer_names.novation_date as novation_date',
)->withCount('contracts');
$query->leftJoin('customer_names', 'customers.id', 'customer_names.customer_id')->groupBy('customers.sage_id');
我也尝试了另一种方法,但我得到一个空数组:
$query = $this->customer->newQuery()->with([
'customerNames' => function ($query){
$query->oldest()->first();
}
])
“SQLSTATE [42803]:分组错误:7 错误:列“customer_names.novation_date”必须出现在 GROUP BY 子句中或在聚合中使用
如果我将此添加到 groupBy 以及名称和 ID,我不会收到任何错误,但结果是相同的。
解决方案
您必须在 Laravel 应用程序中关闭严格模式。
去config/database.php
MySQL 集下
strict => false
它将开始工作。
这是数据库设置
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => false,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
如果您使用的是 Postgres
然后,您必须将所有列添加到您在 SELECT 中提到的组中
$query = $this->customer->newQuery()->select(
'customers.id',
'customers.sage_id',
'customers.account_name',
'customer_names.name as name',
'customer_names.novation_date as novation_date',
)->withCount('contracts');
$query->leftJoin('customer_names', 'customers.id', 'customer_names.customer_id')->groupBy(['customers.sage_id', 'customers.account_name', 'name', 'novation_date']);
推荐阅读
- c++ - 如何从 2 个向量构造顶点矩阵?
- r - 预测缺失值
- pandas - 什么是新的 statsmodels 依赖项,特别是关于 pandas.WidePanel?
- html - 仅显示 Html 格式的文本字符串
- css - windows server 2012 清除缓存
- php - 使用 PHP 在 foreach 中只向不同收件人发送一封电子邮件并维护整个代码
- python - 为什么“继续”和“中断”会给出相同的结果?
- standard-library - puts(NULL) - 为什么 WP+RTE 不抱怨?
- dynamics-crm - 如何在 Microsoft Dynamics 门户中编辑字段
- amp-html - 样式属性是否有助于 50k CSS 限制