Thank you for your reply, So I wonder how it is different between context, data and query? I can understand the difference between query and data (the form will parse data from get and post methods).
But I don’t really get context? Is it for the scenario that you described (setting default values?).
Right now, I am using $this->set(); multiple times in one controller whenever I have to send a new context to the view. I wonder if this is the right way?