Laravel属于To& hasMany关系不起作用

时间:2014-05-21 00:44:20

标签: php laravel laravel-4

我有一个名为champ_sales的表,其中包含属于表champions的拥护者。我已经正确设置了模型,并且我试图以与此处的文档完全相同的方式查询:http://laravel.com/docs/eloquent#querying-relations状态,但它无法正常工作。

class ChampSales extends Eloquent {

    protected $table = 'champ_sales';

    public function champ(){
        return $this->belongsTo('Champion');
    }

}

class Champion extends Eloquent {

    protected $table = 'champions';

    public function skins(){
        return $this->hasMany('Skin');
    }

//relevent relation here:
    public function championOnSale(){
        return $this->hasMany('ChampSales');
    }

    public function skinOnSale(){
        return $this->hasMany('SkinSales');
    }

}

我的查询:在start_date

的表champions中查找id=2

$champsales = ChampSales::find(2);
echo $champsales->champ->start_date;

运行这个给了我一个模糊的错误,上面写着"试图获得非对象的属性"。我不确定自己做错了什么,按照文档说明点。

1 个答案:

答案 0 :(得分:2)

我刚修好了。我在champ()中定义了本地密钥和外键。我认为laravel命名约定会很好,但我猜不是。

class ChampSales extends Eloquent {

    protected $table = 'champ_sales';

    public function champ(){
        return $this->belongsTo('Champion', 'champion_id', 'id');
    }

}