Laravel 5.3 Eloquent - 从3张桌子中选择

时间:2016-10-29 17:10:54

标签: php laravel laravel-5 orm eloquent

除了我的上一个问题Laravel 5.3 Eloquent Relationships

我添加了一个名为Labels的新表,当然也为此表创建了一个新模型。

语言

id
name
short_name

词典

id
label_id
value
language_id

标签

id
label_name

我有这段代码:

$lables = Dictionary::whereHas('language', function($query) {
        $short_name = basename(__DIR__);
        $query->where('short_name', $short_name);
    })->pluck('value', 'label_id')->toArray();

我想拉出label_name字段而不是label_id

但我不知道如何加入。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用join()作为

$lables = Dictionary::whereHas('language', function($query) {
                    $query->where('short_name', 'en');
                })
                ->join('labels', 'dictionary.label_id', '=', 'labels.id')
                ->pluck('dictionary.value', 'labels.label_name')
                ->toArray();

我不是百分百肯定会起作用,但你可以试一试。