小编Dhe*_*raj的帖子

Laravel 数据库严格模式

我不奇怪,请帮帮我。

我的查询是:- Invoice::join('orders', 'orders.invoice_id', '=', 'invoices.id')->groupBy('invoices.id')->get();

然后我有一个错误:语法错误或访问冲突:1055 'invoices.reference_number' is not in GROUP BY

当我根据错误更新我的查询时,查询是:-

$invoices = Invoice::join('orders', 'orders.invoice_id', '=', 'invoices.id')->groupBy('invoices.id','invoices.reference_number','invoices.customer_address_id','invoices.country_id','invoices.paid_at','invoices.due_date','invoices.created_at','invoices.updated_at','invoices.deleted_at','orders.id','orders.currency_id','orders.user_id','orders.customer_id','orders.created_at','invoices.updated_at')->get();
Run Code Online (Sandbox Code Playgroud)

现在查询工作,但在这种情况下,我不能使用select(),它返回列在groupBy()

所以我做了谷歌然后发现如果我关闭数据库严格模式然后它会工作然后我做了并且它运行良好,但我不想关闭严格模式。

另外,我做了关于数据库模式的研究https://dev.mysql.com/doc/refman/5.5/en/faqs-sql-modes.html https://dev.mysql.com/doc/refman/5.5/ zh/sql-mode.html

然后我找到了查询:- SELECT @@GLOBAL.sql_mode; SELECT @@SESSION.sql_mode;

但结果是空白

如果我在数据库中这样做 - select * from invoices inner join orders on orders.invoice_id = invoices.id where invoices.deleted_at is null group by invoices.id

然后它工作正常意味着没有通过 mySQL 进行模式验证它已经配置了 Laravel

另外,我还没有在laravel文档中找到相关的数据库模式

所以如果我做错了什么,请帮助我。

而且我还想知道在 laravel 中启用了谁的数据库严格模式验证,因为我想知道什么严格验证给了我一个错误。

php mysql database sql-mode laravel

3
推荐指数
2
解决办法
5305
查看次数

标签 统计

database ×1

laravel ×1

mysql ×1

php ×1

sql-mode ×1