【发布时间】:2020-12-30 22:51:01
【问题描述】:
我已经有一段时间没有使用 Laravel 了,现在我正试图回来,从事一个项目,但我对通过一对多关系检索数据感到很困惑。
在用户模型中:
public function blackboard()
{
return $this->hasMany(Blackboard::class);
}
在黑板模型中:
public function user()
{
return $this->belongsTo(User::class);
}
在控制器中:
public function index()
{
$blackboard = Blackboard::all();
return view('home', ['blackboards' => $blackboard]);
}
在视图中:
<ul class="list-group">
@foreach($blackboards as $blackboard)
<li>{{ $blackboard->user->name }}</li>
@endforeach
</ul>
在黑板迁移中:
Schema::create('blackboards', function (Blueprint $table)
{
$table->bigIncrements('id');
$table->text('title')->nullable(); //Need to take out
$table->text('content')->nullable(); //Need to take out
$table->unsignedBigInteger('created_by');
$table->timestamps();
$table->foreign('created_by')
->references('id')
->on('users')
->onDelete('cascade');
});
在用户迁移中
Schema::create('users', function (Blueprint $table)
{
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
不知何故,它不允许我通过黑板数据显示用户信息,我收到以下错误:
Trying to get property 'name' of non-object (View: /var/www/html/intranet/resources/views/home.blade.php)
【问题讨论】:
标签: database laravel eloquent relationship