Laravel口才:从两个表中检索数据

问题描述 投票:0回答:1

我有两个不同的表,分别命名为artistsartworks。我想从两个表中检索数据并将它们显示在Summary表中。

这里的条件是:从name表中获取artists(此表中还有其他列),并从number of total artworks表中获取artworks。在Summary表中显示它们。

artists
|-------------------|
|  id   |   name    |
|-------------------|
|  1    |    A      |
|-------------------|
|  2    |    B      |
|-------------------|
|  3    |    C      |
|-------------------|

artworks
|-----------------------------------------------------|
|  id   |   artist_id   |   title   |     medium      |
|-----------------------------------------------------|
|  1    |       1       |    ABC    |      Oil        |
|-----------------------------------------------------|
|  2    |       1       |    DEF    |     Water       |
|-----------------------------------------------------|
|  3    |       1       |    GHI    |     Water       |
|-----------------------------------------------------|
|  1    |       2       |    JKL    |      Oil        |
|-----------------------------------------------------|
|  2    |       2       |    MNO    |     Water       |
|-----------------------------------------------------|
|  3    |       3       |    PQR    |      Oil        |
|-----------------------------------------------------|

这就是我想要的:

Summary
|-------------------------------------------|
|  No   |   Artist Name  |   Total Artwork  |
|-------------------------------------------|
|  1    |        A       |         3        |
|-------------------------------------------|
|  2    |        B       |         2        |
|-------------------------------------------|
|  3    |        C       |         1        |
|-------------------------------------------|

任何帮助将不胜感激。谢谢您的时间。

mysql laravel eloquent laravel-5.7
1个回答
0
投票

您可以在关系上使用withCount()方法:

$artists = Artist::withCount('artworks')->get();
foreach($artists as $artist) {
    echo $artist->artworks_count;
}
© www.soinside.com 2019 - 2024. All rights reserved.