/** @test */ public function it_deletes_all_specified_relations() { $user = User::create([]); $author = Author::create(['user_id' => $user->id]); $post = Post::create(['author_id' => $author->id]); $comment = Comment::create(['post_id' => $post->id]); $user = $user->fresh(); $this->assertEquals($user->author()->count(), 1, 'author'); $this->assertEquals($user->author()->first()->posts()->count(), 1, 'posts'); $this->assertEquals($user->author()->first()->posts()->first()->comments()->count(), 1, 'comments'); $user->delete(); $this->assertEquals(Post::where('author_id', 1)->count(), 0, 'post 0'); $this->assertEquals(Comment::where('post_id', 1)->count(), 0, 'comment 0'); $this->assertEquals(Author::where('user_id', 1)->count(), 0, 'user 0'); }
public function doCreate() { $content = CW::$app->request->post('content'); $updateId = CW::$app->request->post('updateId'); if (empty($content) || empty($updateId)) { return false; } $replyTo = CW::$app->request->post('replyTo'); $result = \models\Comment::create($content, $updateId, CW::$app->user->identity->id, 0 === $replyTo ? null : $replyTo); if ($result) { $result->owner = ['id' => CW::$app->user->identity->id, 'username' => htmlspecialchars(CW::$app->user->identity->username), 'profileUrl' => \models\User::getProfileUrl(CW::$app->user->identity->id), 'pictureUrl' => CW::$app->user->identity->getProfilePicUrl()]; $result->postedAgo = \models\BaseModel::getPostedAgoTime(date("Y-m-d H:i:s", time())); $result->upvotes = 0; $result->replies = $replyTo ? false : []; $result->voted = false; $result->content = htmlspecialchars($result->content); } return json_encode($result); }