试图在整个Internet上搜索此错误,但是徒劳无功,因此,作为最后的选择,我在这里在StackOverflow上创建一个问题。

我建立了两个简单的 Eloquent 模型:
1.老师(扩展了Authenticable)-因为我在系统上使用MultiAuth。
2. GeneralNotice (扩展 Eloquent /模型)
app\Teacher.php

public function generalNotices()
{
    $this->hasMany('App\Modules\GeneralNotice');
}
app\Modules\GeneralNotice.php
public function teacher()
{
    $this->belongsTo('App\Teacher');
}

这是我的一般通知迁移表:
database/migrations/***_create_general_notices_table.php
Schema::create('general_notices', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->longtext('description')->nullable();
        $table->string('attachment')->nullable();
        $table->integer('teacher_id')->unsigned();
        $table->foreign('teacher_id')->references('id')->on('teachers');
        $table->date('dated_on')->default(now());
        $table->timestamps();
    });

我还通过示例通知为数据库播种,以检查其是否有效。

当我尝试访问这些关系中的任何一个时,我都会遇到错误。
$teacher = Teacher::find(1);$teacher->generalNotices;
消息“App\Teacher::generalNotices必须返回关系实例”的 LogicException。
$notice = GeneralNotice::find(1);$notice->teacher;
消息“App\Modules\GeneralNotice::teacher必须返回关系实例”的 LogicException。

如果我尝试访问成员函数,$teacher->generalNotices()$notice->teacher()
我得到 null

请帮忙。

最佳答案

您需要return关系,例如:

public function teacher()
{
    return $this->belongsTo('App\Teacher');
}

关于php - 带有消息 '... must return a relationship instance.'的LogicException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46843914/

10-09 20:11