Laravel 5.2 中的预加载不起作用

Eager Loading in Laravel 5.2 is not working

我研究了与此问题相关的内容,但没有解决我的情况。我现在正在学习 Laravel 5.2 以学习我的第一个框架。但是我在使用"Eager Loading"的教程中遇到了这个问题。

我不确定是否需要 Card ModelTable 但只是为了确保我添加了它们。

我想做什么? 我想显示与笔记关联的用户。


这些是我的代码和文件

CardsController.php

public function show(Card $card)
{

    return $card->notes[0]->user;

}

表格:

用户

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('username')->unique();
        $table->string('email')->unique();
        $table->string('password');
        $table->timestamps();
    });

备注

Schema::create('notes', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned()->index();
            $table->integer('card_id')->unsigned()->index();
            $table->text('body');
            $table->timestamps();
        });

卡片

Schema::create('cards', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->timestamps();
    });

型号: namespaceuse 与其他空白的模型相同

User.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function User()
    {
        return $this->belongsTo(Note::class);
    }
}

Note.php

class Note extends Model
{
    protected $fillable = ['body'];

    public function card()
    {
        return $this->belongsTo(Card::class);
    }
}

Card.php

class Card extends Model
{
    public function notes()
    {
        return $this->hasMany(Note::class);
    }

    public function addNote(Note $note)
    {
        return $this->notes()->save($note);
    }
}

预期输出:

Expected Output Image

我的输出:

我的输出是空白的。浏览器没有显示任何内容。


如果您发现缺少代码,请告诉我,因为我缩短了 CardsController.php,因为我认为该代码很重要。

脑子里突然想到解决办法。这解决了我的问题。我刚刚在 User.php 模型中添加了下面的代码。它就像魔术一样奏效。

 public function User()
    {
        return $this->belongsTo(Note::class);
    }