我有两个不同的表,分别命名为artists
和artworks
。我想从两个表中检索数据并将它们显示在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 |
|-------------------------------------------|
任何帮助将不胜感激。谢谢您的时间。
您可以在关系上使用withCount()方法:
$artists = Artist::withCount('artworks')->get();
foreach($artists as $artist) {
echo $artist->artworks_count;
}