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

bab*_*eii 11 laravel eloquent laravel-4

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

user.php的:

public function fbevents()
{
    $this->belongsToMany('Fbevent', 'fbevent_user');
}
Run Code Online (Sandbox Code Playgroud)

Fbevent.php:

public function users()
{
    $this->belongsToMany('User', 'fbevent_user);
}
Run Code Online (Sandbox Code Playgroud)

我在尝试查找列表时收到此错误:

$event = Fbevent::find(10);
var_dump($event->users->lists('userId'));
Run Code Online (Sandbox Code Playgroud)

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

$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();
Run Code Online (Sandbox Code Playgroud)

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

Raz*_*zor 45

你需要从你的关系中返回一个结果

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

  • 谢谢有同样的问题,我忘了添加回报.必须是太多咖啡XD的影响 (13认同)