App\Models\Forum\TopicVote::save PHP Method

save() public method

public save ( )
    public function save()
    {
        if (!$this->isValid()) {
            return false;
        }
        return DB::transaction(function () {
            $this->topic->update(['poll_last_vote' => Carbon::now()]);
            $this->topic->pollVotes()->where('vote_user_id', $this->params['user_id'])->delete();
            foreach (array_unique($this->params['option_ids']) as $optionId) {
                $this->topic->pollVotes()->create(['poll_option_id' => $optionId, 'vote_user_id' => $this->params['user_id'], 'vote_user_ip' => $this->params['ip']]);
            }
            PollOption::updateTotals(['topic_id' => $this->topic->topic_id]);
            return true;
        });
    }