【问题标题】:Laravel 5.3 Eloquent - select from 3 tablesLaravel 5.3 Eloquent - 从 3 个表中选择
【发布时间】:2016-10-29 17:10:54
【问题描述】:

除了我上一个问题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

但我不知道如何加入。

【问题讨论】:

  • @TrevorHickey 感谢您的拼写更正

标签: php laravel laravel-5 orm eloquent


【解决方案1】:

您可以尝试使用join() as

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

我不能 100% 确定这会奏效,但你可以试一试。

【讨论】:

    猜你喜欢
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 2015-09-28
    • 2017-10-02
    • 2013-04-03
    • 2013-09-08
    • 2018-01-08
    相关资源
    最近更新 更多