web-dev-qa-db-ja.com

リレーションシップメソッドは、Illuminate \ Database \ Eloquent \ Relationships \ Relationタイプのオブジェクトを返す必要があります

イベントに関連付けられているユーザーのリストを取得しようとしています。これが私の雄弁なモデルです:

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_id = 10およびuser_id = 1のエントリをfbevent_userテーブルに追加しました。

11
babbaggeii

あなたはあなたの関係から結果を返す必要があります

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