gpt4 book ai didi

php - Laravel RouteServiceProvider 中的显式路由模型绑定(bind)问题

转载 作者:行者123 更新时间:2023-11-29 17:22:37 25 4
gpt4 key购买 nike

我在 Laravel(5.6 版本)应用程序中为 Slider 模块使用显式路由模型绑定(bind)。现在,当我尝试将 sliders 表与 file_uploads 表连接时,我遇到了一个问题。

RouteServiceProvider

$this->bind('slider', function ($value) {
$slider = new Slider;

return Slider::withTrashed()
->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
->where('sliders.id', $value)->first();
});

这是我正在使用的代码。slidersfile_uploads 表都有 ID 列。在 slider 编辑页面中,我从 file_uploads 表获取 ID。我的预期 ID 将来自 sliders 表。

我非常感谢您提供的任何帮助。

最佳答案

如果您使用过Eloquent Relationship由于 joins,它可以让您避免表中的一个 id 属性覆盖另一个表。

但是为了使用Joins然后您可以使用 select() (请参阅 Selects )或将数组参数传递给 first() 方法来检索所需的 id 作为另一个属性,以便您的代码变为:

return Slider::withTrashed()
->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
->where('sliders.id', $value)
->first(['*', 'sliders.id as sliders_id']);

或者:

return Slider::withTrashed()
->leftjoin('file_uploads','file_uploads.file_code', '=', 'sliders.file_code')
->where('sliders.id', $value)
->select('*', 'sliders.id as sliders_id')
->first();

无论哪种方式,select 语句都会作为查询传递,id 值都会作为 sliders_id 返回,您可以在需要 id 的地方使用它> 相反。

关于php - Laravel RouteServiceProvider 中的显式路由模型绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174607/

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