我正在尝试显示每个评论块的用户名 . 目前我已经有了它来显示文章评论和评论的正文,但在我的表中我已经为每个评论分配了user_id . 我可以让它显示user_id,但我不确定如何查找分配给该user_id的用户名 .
视图:
@foreach($article->comments as $comment)
{{$comment->user->username}}
{{$comment->body}}
@endforeach
模特文章:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Articles extends Model
{
public function comments(){
return $this->hasMany('App\comments')->orderBy('id', 'DESC');
}
}
型号评论:
namespace App;
use Illuminate\Database\Eloquent\Model;
class comments extends Model
{
public function user(){
return $this->hasOne('App\users');
}
}
文章控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Articles;
use App\Comments;
use App\Users;
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:select * from users where users.comments_id = 16和`u▶“
1 回答
您在
comments
类中使用了无效关系 .使用
belongsTo
方法代替hasOne
,如下所示