我正在尝试显示每个评论块的用户名。 目前,我已经让它显示文章+评论和评论的正文,但是在我的表格中,我已经为每条评论分配了user_id。我可以让它显示user_id,但我不确定如何查找分配给该user_id的用户名。
视图:
@foreach($article->comments as $comment)
{{$comment->user->username}}
{{$comment->body}}
@endforeach
模型文章:
namespace App;
use IlluminateDatabaseEloquentModel;
class Articles extends Model
{
public function comments(){
return $this->hasMany('Appcomments')->orderBy('id', 'DESC');
}
}
模型注释:
namespace App;
use IlluminateDatabaseEloquentModel;
class comments extends Model
{
public function user(){
return $this->hasOne('Appusers');
}
}
文章控制器:
namespace AppHttpControllers;
use IlluminateHttpRequest;
use DB;
use AppArticles;
use AppComments;
use AppUsers;
class ArticlesController extends Controller
{
public function getAllArticles(){
$results = Articles::orderBy('id', 'DESC')->get();
return view('index', ['articles' => $results]);
}
}
错误:
SQLSTATE[42S22]:找不到列:1054 未知列 "where子句"中的"users.comments_id"(SQL:从
users
中选择 * 哪里users
.comments_id
= 16 和 'u ▶">
您在类中使用了无效comments
关系。
使用belongsTo
方法代替hasOne
,如下所示
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class comments extends Model
{
public function user(){
return $this->belongsTo('Appusers')->withDefault([
"username"=>null
]);
}
}