2016-05-28 9 views
1

Я исследовал связанные с этим вопросом, но не работал над моей ситуацией. Сейчас я изучаю Laravel 5.2, чтобы изучить мои первые рамки. Но я столкнулся с этой проблемой в учебнике, в котором используется «Eager Loading».Eager Загрузка в Laravel 5.2 не работает

Я не уверен, если Card Модель и Таблица необходимы, но только, чтобы убедиться, что я добавил их.

Что я пытаюсь сделать? Я хочу показать пользователя, связанного с запиской.


Это мои коды и файлы

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(); 
    }); 

МОДЕЛИ: namespace и use просто совпадают с другими моделями, которые являются пустыми

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, потому что я думаю, что код является важным.

ответ

0

Внезапно всплывающее окно, когда я думаю о решении. Это решило мою проблему. Я просто добавил код ниже в User.php. И это сработало, как магия.

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