Laravel hasMany / find() - >有问题

时间:2014-08-21 15:41:54

标签: php laravel laravel-4 eloquent

毫无疑问,这是一个非常基本的问题,但我不能为我的生活让我头晕目眩。

我有两个表 - 广告系列和操作。每个操作都附加到广告系列,每个广告系列都有很多操作。

关系:

class Campaign extends Eloquent {

    public function actions()
    {
        return $this->hasMany('Action');
    }

class Action extends Eloquent {

    public function campaign()
    {
        return $this->belongsTo('Campaign');
    }


在查询单个广告系列时,我还想包含与其相关的操作。我当前的控制器方法收集操作,但显示所有广告系列,而不是一个:

class CampaignsController extends BaseController {  

    public function getCampaign($id)
        {
            $data['campaign'] = Campaign::find($id)->with('actions')->get();

            return $data;
        }


广告系列:find($ id)正确查找单个广告系列,但我应该如何引入属于单个广告系列的操作,而不会破坏它?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用get(),则无需使用find()

find()的行为类似于SQL子句LIMIT 1,因为它搜索您的主键,该字段中的每个值都是不同的。

Campaign::with('actions')->find($id);