嗨我有我的功能
public function index(){
$comments = ListsComments::orderBy( 'created_at', 'asc' )->where('is_admin_reply', 0)->get();
return view( "admin.lists.comments.index", compact( 'comments' ) );
}
这给了我所有的评论,但我只想要列表的评论这是我的ListsComments模型
public function list(){
return $this->belongsToMany('App\Models\Lists', 'list_has_comments' , 'comment_id', 'list_id');
}
在刀片中我称他为$ comment->列表,但是如何给我所有的评论和一些评论不是很好的列表给我错误,我明白我需要调用列表来调用函数列表在哪里指定表list_gas_comments但我不知道如何使用funcion index,regads。
答案 0 :(得分:0)
您可以使用with()
public function index(){
$comments = ListsComments::with(['list'=> function($q){
$q->first();
}])->orderBy( 'created_at', 'asc' )->where('is_admin_reply', 0)->get();
return view( "admin.lists.comments.index", compact( 'comments' ) );
}
你也可以实现这一点。 $comment->list->first()
;
我不是第二种方法,但你可以尝试一下。
我希望这会有所帮助。
答案 1 :(得分:0)
感谢您的帮助,但这不起作用,最后我使用join来保存表并可以访问用户并列出xD
public function __construct(){
parent::__construct('list');
}
public function __construct($relatedTable = ''){
$this->relatedTable = $relatedTable;
}
public function adminComments(){
$related = $this->relatedTable;
$relationshipTable = $related . '_has_comments as relation';
$relatedPlural = $related . 's as related';
return DB::table('comments')
->join($relationshipTable, 'comments.id', '=', 'relation.comment_id')
->join($relatedPlural, 'relation.list_id', '=', 'related.id')
->join('users', 'relation.user_id', '=', 'users.id')
->select('*');
}
public function index(){
$listComment = new ListsComments();
$comments = $listComment->adminComments()->paginate(10);
return view( "admin.lists.comments.index", compact( 'comments') );
}