gpt4 book ai didi

php - 被连接覆盖的 ID 列

转载 作者:可可西里 更新时间:2023-11-01 08:29:34 28 4
gpt4 key购买 nike

使用 Laravel 4.2 和 MySQL。

我有一个包含 idfit_score_id 列的 applications 表,以及一个包含id 列。这是一种基本的“属于”关系。

以下代码:

$query = Application::join('fit_scores', 'applications.fit_score_id', '=', 'fit_scores.id');
$collection = $query->get();

...生成 Application 模型的集合,其中 id 属性设置为 fit_score_id 的值。我在做什么导致了这种情况?

我应该指出,有必要执行此连接而不是简单地使用 Eloquent 关系,因为我想按 fit_scores 表上的列对结果进行排序。我不相信在没有显式连接的情况下使用 Eloquent 是不可能的。

最佳答案

解决此问题的最佳方法是将 join 方法链接到 select 方法,如下所示:

Application::select('*', \DB::raw("applications.id as appid"))
->join('fit_scores', 'applications.fit_score_id', '=', 'fit_scores.id')
->get();

解释:该解决方案简单地建议,我们可以 Hook 到主选择查询(在加入之前)并将 id 列的标签更改为其他内容,而不是考虑防止用加入的 id 覆盖第一个 id 的行为(在本例中为“appid”)。通过这样做,我们最终将父表的 ID 标记为“appid”,并将连接表的 ID 再次标记为“id”,同时它们在最终结果上共存。

关于php - 被连接覆盖的 ID 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580874/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com