Day7
コメント投稿時と削除時に、下記のようなコードでコメント数を集計して保存している。こうすることでコメント数を表示する時に集計しなくて良いので全体として負荷が小さくなる。
public static function updateCommentCount($id)
{
$count = BoardComment::where('board_post_id', $id)->count();
DB::table('board_posts')
->where('id', $id)
->update([
'comment_count' => $count,
]);
}
ちなみにDB::table
を使っているのは該当データのタイムスタンプを更新しないようにするため。
Day6
削除されたコメントはこんな感じで置き換えてる。同じIDのデータは内部で共通化されて色んな所で使い回されてるっぽいので、こんな感じでnewしたものを使わないと連動して色々おかしなことになるため。
public function getCommentsForJson($viewUserId)
{
return $this->boardComments
->map(function ($comment) use ($viewUserId) {
if ($comment->deleted_at) {
$deletedComment = new BoardComment;
$deletedComment->id = $comment->id;
$deletedComment->deleted_at = $comment->deleted_at;
return $deletedComment;
}
$comment->isMine = $comment->user_id == $viewUserId;
return $comment;
});
}
Day5
ボードの投稿にコメントできる機能を作成中。記事と同様にレス形式にしようか悩んだが、ボードの場合はコメント自体がレスみたいなものだし、最悪あとで変更もできるからシンプルな一覧形式にすることにした。
Day4
ボードにanonymous_allowed、ボード投稿にanonymousのbooleanカラムを追加。
コンポーネントでは許可かどうかのプロパティでチェックボックスの表示を切り替え。
<div v-if="anonymousAllowed" class="checkbox">
<label>
<input v-model="post.anonymous" type="checkbox"> 匿名で投稿する
</label>
</div>
Day3
今日はコードハイライトのCSSを修正しただけ。残り時間があればボードの投稿を匿名でできるようにしていく。
Day2
laravel-adminを導入。一覧画面の各表示をリンクにしたりちょこちょこ調整。そもそもgridの中身が表示されていなかったりしておかしいが、とりあえずOSSだし不具合なのか何か設定がおかしいのか考える時間ももったいないのでスルーの方向で。
Day1