提问人:Imran Niaz 提问时间:4/29/2023 更新时间:4/29/2023 访问量:37
语法错误或访问冲突:1055“new.chart_of_accounts.name”不在 GROUP BY 中
Syntax error or access violation: 1055 'new.chart_of_accounts.name' isn't in GROUP BY
问:
'应用程序 / Http的 / 控制器 / 报告控制器 .php : 1616
当我打开链接时,它显示我这个错误
这是名为“TransactionController”的 PHP Laravel 控制器的完整代码。该控制器的目的是管理用户银行账户的交易。
“index”方法是控制器的主要方法,在用户访问交易页面时执行。该方法首先检查用户是否具有管理事务的权限。如果用户具有权限,则该方法将准备显示交易页面所需的数据。
该方法执行的第一件事是为交易页面设置默认过滤器。筛选器变量使用帐户和类别的“全部”值进行初始化。然后,该方法获取用户的所有银行帐户,并准备帐户持有人的下拉列表。它还在下拉列表中添加了“Stripe / PayPal”选项,用于与任何银行账户无关的交易。
接下来,该方法为交易准备类别。它获取用户的所有类别,并为事务准备类别的下拉列表。它还在下拉列表中添加了“账单”和“发票”选项。
准备好筛选器后,该方法会获取用户在给定时间范围内的所有交易和银行帐户。时间范围由用户指定,可以使用 start_month 和 end_month 查询参数进行设置。如果未设置这些参数,则默认时间范围设置为过去五个月。
然后,该方法会检查用户是否设置了任何帐户或类别过滤器。如果用户已选择帐户,则交易和帐户将按所选帐户进行筛选。如果用户已选择类别,则交易记录和帐户将按所选类别进行筛选。
最后,该方法返回包含必要数据(如交易、科目、类别和筛选器)的交易索引视图。
如果用户没有管理事务的权限,则该方法会将用户重定向到上一页,并显示错误消息。
$end = $request->end_date;
}
else
{
$start = date('Y-m-01');
$end = date('Y-m-t');
}
$journalItem = JournalItem::select('chart_of_accounts.name', \DB::raw('sum(credit) as totalCredit'), \DB::raw('sum(debit) as totalDebit'), \DB::raw('sum(credit) - sum(debit) as netAmount'));
$journalItem->leftjoin('journal_entries', 'journal_entries.id', 'journal_items.journal');
$journalItem->leftjoin('chart_of_accounts', 'journal_items.account', 'chart_of_accounts.id');
$journalItem->where('chart_of_accounts.created_by',\Auth::user()->creatorId());
$journalItem->where('journal_items.created_at', '>=', $start);
$journalItem->where('journal_items.created_at', '<=', $end);
$journalItem->groupBy('account');
$journalItem = $journalItem->get()->toArray();
$filter['startDateRange'] = $start;
$filter['endDateRange'] = $end;
return view('report.trial_balance', compact('filter', 'journalItem'));
}
else
{
return redirect()->back()->with('error', __('Permission Denied.'));
}
}
public function leave(Request $request)
{`
SQLSTATE[42000]: Syntax error or access violation: 1055 'new.chart_of_accounts.name' isn't in GROUP BY (Connection: mysql, SQL: select
chart_of_accountsnamejournal_itemsjournal_entriesjournal_entriesidjournal_itemsjournalchart_of_accountsjournal_itemsaccountchart_of_accountsidchart_of_accountscreated_byjournal_itemscreated_atjournal_itemscreated_ataccount').
, sum(credit) as totalCredit, sum(debit) as totalDebit, sum(credit) - sum(debit) as netAmount from
left join
on
.
=
.
left join
on
.
=
.
where
.
= 2 and
.
>= 2023-04-01 and
.
<= 2023-04-30 group by
`
尝试解决此问题
答:
而不是
$journalItem->groupBy('account');
用
$journalItem->groupBy('chart_of_accounts.name');
所有列都位于 th group by 中或具有来自 nction 的聚合,因此当您按帐户分组时,它需要在 select 和 name 中需要聚合函数,或者您使用 name 进行分组 by
评论