【问题标题】:Laravel merging relationships tablesLaravel 合并关系表
【发布时间】:2015-01-24 01:44:51
【问题描述】:

我在 Laravel 5 中有两个模型(以及数据库中的两个表):艺术品和选项(表名是艺术品和选项)。一个艺术品可以有很多选择,所以我的模型如下:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Artwork extends Model {

    public function options(){
        return $this->hasMany('App\Option');
    }

}

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Option extends Model {

    //

}

我正在尝试输出一个数组,该数组将包含所有将选项嵌套在其中的艺术品。只输出艺术品可以正常工作($artworks = $artwork->get(),如下所示),但我不知道如何在每个艺术品中合并/嵌套选项。

这是我的路线

get('api/artworks','ArtworksController@index');

这是我的控制器

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use App\Artwork;

class ArtworksController extends Controller {


    public function index(Artwork $artwork)
    {
        $artworks = $artwork->merge($artwork->options())->get();
        return $artworks;
    }

}

我一直在玩那个 merge() 函数,但我就是做错了。有没有可能用 merge() 来实现这一点?

【问题讨论】:

    标签: php database model eloquent laravel-5


    【解决方案1】:

    你只需要eager loadoptions关系:

    $artworks = $artwork->with('options')->get();
    

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多