youll avoid having to use an apex controller, and most of your client side controller logic (in most cases)
– gllsFeb 12 at 0:57

in any case, if you absolutely need it this way, try declaring an empty map/object before fetching your case, then add your case map/object to your new variable then update it, and then set the new case attribute to your updated object
– gllsFeb 12 at 0:59

@glls all I want to do is create a record. I don't need to update.
– Tyler ZikaFeb 12 at 1:00

1 Answer
1

Your issue seems to be while accessing the case attribute from the component in controller. If you want to just set the values being captured in the form and send it to the controller as in your current implementation, you will need to take the below approach.

handleCreateCase : function(component, event, helper) {
var c;
// create the object and then set the attributes right here on the object
c = {'sobjectType' : 'Case',
'Subject' : component.find("subject").get("v.value"),
'Description' : component.find("description").get("v.value")};
console.log(c);
// now set the JSON created above to the attribute defined on your component
component.set("v.case", c);
// rest of the code
}

And as @glls has recommended in the comment, do take a look at lightning:recordEditForm if you need to create records without the need of writing custom controllers.