关系方法必须返回Illuminate \ Database \ Eloquent \ Relations \ Relation类型的对象

时间:2014-05-08 15:28:01

标签: laravel laravel-4 eloquent

尝试获取与事件关联的用户列表。以下是我雄辩的模型:

user.php的:

public function fbevents()
{
    $this->belongsToMany('Fbevent', 'fbevent_user');
}

Fbevent.php:

public function users()
{
    $this->belongsToMany('User', 'fbevent_user);
}

当我尝试查找列表时出现此错误:

$event = Fbevent::find(10);
var_dump($event->users->lists('userId'));

我已通过以下迁移在数据库中设置了一个数据透视表:

$table->increments('id');
$table->integer('fbevent_id')->unsigned()->index();
$table->foreign('fbevent_id')->references('id')->on('fbevents')->onDelete('cascade');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();

并在fbevent_user表中添加了一个条目,其中fbevent_id = 10且user_id = 1.

1 个答案:

答案 0 :(得分:44)

您需要从关系中返回结果

public function fbevents()
{
    return $this->belongsToMany('Fbevent', 'fbevent_user');
}
public function users()
{
    return $this->belongsToMany('User', 'fbevent_user');
}