我研究了与这个问题有关但但对我的情况不起作用。我现在正在学习Laravel 5.2来学习我的第一个框架。但是我在使用“Eager Loading”的教程中遇到了这个问题。
我不确定是否需要卡片模型和表,只是为了确保我添加它们。
我想做什么? 我想显示与笔记相关联的用户。
这些是我的代码和文件
CardsController.php
public function show(Card $card)
{
return $card->notes[0]->user;
}
TABLES:
用户
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);
}
}
预期输出:
我的输出:
我的输出是空白的。浏览器没有显示任何内容。
如果您发现缺少代码,请告诉我,因为我认为代码很重要,因此我缩短了CardsController.php
。
答案 0 :(得分:0)
在思考解决方案的过程中突然出现在脑海中。这解决了我的问题。我刚刚在User.php
模型中添加了以下代码。它像魔术一样运作。
public function User()
{
return $this->belongsTo(Note::class);
}