在我的Laravel项目中,我有两个雄辩的模型Set
和Card
,它们之间有一对多的关系<代码>集合有许多卡片
,卡片
属于集合
。
我试图拉数据使用雄辩急切加载使用与()
函数。但是由于某种原因,集合中的卡片数组返回为空白。
设置php
<?php
namespace App;
use App\Card;
use Illuminate\Database\Eloquent\Model;
class Set extends Model
{
protected $table = "sets";
public function cards() {
return $this->hasMany('App\Card');
}
}
卡片php
<?php
namespace App;
use App\Set;
use Illuminate\Database\Eloquent\Model;
class Card extends Model
{
protected $table = "cards";
public function sets() {
return $this->belongsTo('App\Set');
}
}
控制器代码
$sets = Set::with([
'cards' => function($query){
$query->select('name', 'description');
},
])->get();
return $sets;
name
和description
是我在Cards
表中的字段,主键和外键除外。
它返回与卡片": []
在我的JSON
数组的集合
。
我试过在控制器中使用以下代码,
$sets = Set::with('cards.*')->get();
return $sets;
不起作用。
尝试在我的set
模型中的hasMany
方法中添加外键(卡片表中的set\u id),该方法创建了与卡片的关系。但是没有结果。
需要指出的是,当我尝试从卡
表中分别从卡控制器
中提取数据时,它返回了所有卡
数据。
一些线索将意味着巨大的帮助。谢谢你抽出时间。
在控制器中尝试此代码,
$sets = Set::with('cards')->get();
return $sets;
让我知道它是否有效
试着这样做:
public function sets() {
return $this->belongsTo('App\Set','id','id_set');
}
第二个参数"id"是table Set的id,第三个参数"id_set"是Card Table中的Foreing键。