Laravel 合并关系表
Laravel merging relationships tables
我在 Laravel 5 中有两个模型(数据库中有两个 table):艺术品和选项(table 名称是艺术品和选项)。一个作品可以有很多选择,所以我的模型如下:
<?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() 实现这一点?
您只需要 eager load options
关系:
$artworks = $artwork->with('options')->get();
我在 Laravel 5 中有两个模型(数据库中有两个 table):艺术品和选项(table 名称是艺术品和选项)。一个作品可以有很多选择,所以我的模型如下:
<?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() 实现这一点?
您只需要 eager load options
关系:
$artworks = $artwork->with('options')->get();