commentable IDとタイプすることなく、挿入されていますしかし、私がコメントに返信すると、データベース内のレコードはcommentable_id
とcommentable_type
なしで挿入されるので、そのコメントへの返信がApp\Post
またはApp\Product
であるかどうかを知る方法はありません。理由を理解する。ネストされたセット:子供たちのコメントは、私は、ルートのコメントを作るために、私が管理している<a href="https://github.com/etrepat/baum" rel="noreferrer">Baum</a></p> <p>でネストされたセットを使用<a href="https://github.com/RomainLanz/laravel-commentable" rel="noreferrer">Laravel Commentable</a>を使用してマルチスレッドのコメントを達成しようとしています
テーブル
users: id, name, email...
posts: id, user_id, subreddit_id...
comments: id, user_id, parent_id, lft, rgt, depth, commentable_id, commentable_type
ルート
Route::post('comments/{post}', ['as' => 'comment', 'uses' => '[email protected]']);
Route::post('comments/{comment}/child', ['as' => 'child-comment', 'uses' => '[email protected]']);
PostController
public function createComment($id) {
$post = Post::with('user.votes')->with('subreddit.moderators')->where('id', $id)->first();
$comment = new Comment;
$comment->body = Input::get('comment');
$comment->user_id = Auth::id();
$post->comments()->save($comment);
}
public function createChildComment(Post $post){
$parent = Comment::find(Input::get('parent_id'));
$comment = new Comment;
$comment->body = Input::get('child-comment');
$comment->user_id = Auth::id();
$comment->save();
$comment->makeChildOf($parent);
}
のメソッドルートのコメントと子供のためのビューが
<-- This is for root comments --/>
{!! Form::open(['route' => ['comment', $post]]) !!}
@foreach($comments as $comment)
@endforeach
{!! Form::close() !!}
<-- This is for children comments --/>
{!! Form::open(['route' => ['child-comment', $comment]]) !!}
<input type="hidden" name="parent_id" value="{{ $comment->id }}"/>
{!! Form::close() !!}
コメント
投稿とコメントのモデルも表示する必要があります – user2479930