mysql - 可变形字段不适用于 Laravel DB::Select() 语句
问题描述
我需要对我正在处理的不返回任何结果的复杂查询使用 DB::select() 语句。经过一番挖掘,我发现原因是无论我使用这个 sintaxis,model_type字段比较都不起作用:
select *
from questions
where model_type = "App\Models\Product"
或者这个sintaxis:
select *
from questions
where model_type = "App\\Models\\Product"
尽管第二句在 MySQL Workbench 上运行良好,但它在 Laravel 中没有返回任何结果。MySQL 表字段名称当然是model_type并且值保持为:App\Models\Product并且所有关系都可以正常工作。似乎应该有一种方法可以指定 Laravel 如何比较这些值,但我还没有找到。请注意,我必须使用 DB::select() 而不是 Eloquent,因为我的实际查询涉及 MySQL MATCH() AGAINST() 和其他一些复杂性。
欢迎任何帮助。发送!
解决方案
以防万一其他人陷入这种困境,我仍然不知道为什么 Eloquent 无法解决它的模型,但我确实找到了这篇很棒的文章,它通过将 Laravel 逻辑与存储在数据库中的信息。https://josephsilber.com/posts/2018/07/02/eloquent-polymorphic-relations-morph-map#the-default-morph-type
推荐阅读
- glut - 当窗口不可见时,GLUT 动画导致 1 个核心的 100% 利用率
- jquery - 如何将“多级菜单添加到汉堡菜单”
- go - 由于导入错误,比赛检测器无法运行。端口运行时/竞赛:在任何 GOROOT 或 GOPATH 中都找不到包“运行时/竞赛”
- virtual-machine - 如何访问我的主机中的虚拟机(通过不同的 IP)?
- reactjs - 将变量传递给阿波罗查询时出错
- ios - pod 安装时出现 Flutter 错误:CocoaPods 找不到 pod“Firebase/CoreOnly”的兼容版本
- javascript - JS:如何为 Google Analytics dataLayer 生成产品数组?
- cockroachdb - 无法将节点添加到 cockroachde 集群
- c# - 二维阵列馈电
- javascript - 方形按钮中的中心图像