雄辩的一对多关系挑战

时间:2019-07-10 14:57:15

标签: php eloquent lumen

我正在使用Lumen 5.8构建应用程序,并具有一个非常简单的模型,如下所示:

class Party extends Model {

    protected $table = 'party';

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

}

class Campaign extends Model {

    protected $table = 'campaign';

    public function party(){
        return $this->belongsTo('App\Party');
    }

}

我的表定义如下:

party (id,name)

campaign (id,name,party_id)

当我在Campaign或Party上使用find方法时,它返回正确的行。但是,如果我尝试使用这种关系并让所有竞选活动都没有聚会,那么它就永远不会返回一行。

我尝试了以下代码:

$campaings = Party::find($id)->campaigns();

,结果为空!但是,如果我使用以下内容,则可以获取所有广告系列:

$campaings = Campaign::where('party_id' , $id)->get();

我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

要获取广告系列行,您需要在查询的末尾添加->get()

Party::find($id)->campaigns()->get();

Party::find($id)->campaigns;