Laravel查询两个表

时间:2018-11-02 13:24:17

标签: laravel model-view-controller

你好,只是一个新手的问​​题,我只是要查询这两个表,我希望第二个表位于另一个表的数组内。

桌子看起来像这样

bulletin

|d : 1"|
|content: "test"|
|id : 2|
|content: "test2"|

图片

|id : 1|
|bulletin_id: 1|
|upload_name: 1.jpg|
|id : 2|
|bulletin_id: 1|
|upload_name: 2.jpg|
|id : 3|
|bulletin_id: 2|
|upload_name: 3.jpg|
|id : 4|
|bulletin_id: 2|
|upload_name: 2.jpg|

我的查询如下

$bulletin = DB::table('bulletin')
            ->select('bulletin.id','content','upload_name')
            ->join('images', 'images.bulletin_id', '=', 'bulletin.id')
            ->get();

是否有可能使数据看起来像这样

array
(
  id:1,
  content:test,
  upload_name:array
(
   1.jpg,
   2.jpg
)
)

1 个答案:

答案 0 :(得分:1)

首先定义您的模型。

php artisan make:model Bulletin
php artisan make:model Image

App \ Bulletin.php

protected $table = 'bulletin';

然后建立关系:

App \ Bulletin.php

use Image;

//

public function upload_name()
{
    return $this->hasMany(Image::class);
}

所以现在您可以查询对象:

app \ Http \ Controllers \ BulletinController.php

public function index()
{
    $bulletins = Bulletin::with('upload_name')->get();

    return $bulletins;
}