laravel显式路由模型绑定问题

nwsw7zdq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(277)

我在我的laravel(5.6版本)应用程序中为slider模块使用显式路由模型绑定。现在我面临一个问题,当我试图加入滑块表与文件上传表。
路由服务提供商

$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();
});

这是我使用的代码。滑块和文件上传表都有id列。在滑块编辑页面中,我从 file_uploads table。我想要的身份证来自 sliders table。
我真的很感激你能提供的任何帮助。

6qqygrtg

6qqygrtg1#

如果你使用了雄辩的关系,它可以挽救你有一个 id 表中的属性重写另一个,因为 joins .
但是为了使用连接,您可以使用 select() (请参见选择)或将数组参数传递给 first() 方法,使代码变为:

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 相反。

相关问题