【问题标题】:Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation关系方法必须返回 Illuminate\Database\Eloquent\Relations\Relation 类型的对象
【发布时间】:2014-06-26 02:26:09
【问题描述】:

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

用户.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。

【问题讨论】:

    标签: laravel laravel-4 eloquent


    【解决方案1】:

    您需要从关系中返回结果

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

    【讨论】:

    • 谢谢遇到同样的问题,我忘了加退货。一定是咖啡喝多了的影响XD
    猜你喜欢
    • 2018-03-20
    • 2014-07-09
    • 2017-12-21
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多