关系方法必须返回一个类型为Relation(LogicException)Laravel 4.1的对象

时间:2014-03-16 20:46:38

标签: php laravel-4 eloquent

我使用过Laravel 4,这是我第一次遇到这个问题。

我的寻呼机表:

class pager extends Eloquent
{

    protected $table = 'pagers';

    public function user()
    {
      return $this->belongsTo('User', 'bid');
    }


    public function pager_items()
    {
      return $this->hasMany('pager_item', 'pid');
    }

}

正如您所看到的,寻呼机有许多寻呼机项目,下面是属于寻呼机的寻呼机项目模型。

class pager_item extends Eloquent
 {
    protected $table = 'pager_items';


    public function pager()
    {
     return $this->belongsTo('pager', 'pid');
    }


}

如果我尝试插入新模型:

    $test = new pager_item;
    $test->description = 'test';
    $test->bid =1;
    $test->cid =1;
    $test->pid =1;
    $test->save();

我收到:

 LogicException
 Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation 

我无法发现会导致此类错误的任何问题,感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

在“属于”关系中,您应该尝试将对象传递给save而不是id。

$pager = pager::find(10);

$test->pager()->associate($pager);

顺便说一句,尝试将类命名为大写...如

class Pager extends Eloquent
...