0

我尝试在我的 JOIN 中使用多个条件,但 Laravel 假设在 JOIN 我将比较我的字段而不是一个常量值。我是否必须将其包装在一个raw()方法中,然后使用它进行转义,DB::connection()->getPdo()->quote()或者是否有任何快捷方式?

->join('tags', function($join) use ($tags) {
    $join->on('tags.id', '=', 'resource_tag.tag_id');
    $join->on('tags.name', '=', $tags);
})

->join('tags', function($join) use ($tags) {
    $join->on('tags.id', '=', 'resource_tag.tag_id');
    $join->on('tags.name', '=', DB::raw(DB::connection()->getPdo()->quote($tags)));
})

这似乎有效,但似乎有点多。

4

1 回答 1

1

如果它不是你必须使用的字段DB::raw

connection()您可以通过删除该方法来稍微缩短代码。您不需要它,因为您已经在默认连接上。

DB::raw(DB::getPdo()->quote($tags))

如果您不想使用DB::raw,可以使用 where语句(在您的join方法之外)。

where('tags.name', $tags)

 

Model::join('tags', 'tags.id', '=', 'resource_tag.tag_id')->where('tags.name', $tags)
于 2014-09-14T08:21:04.427 回答