text:
Write Review
Compare Electronics Companies
out of
, based on
ratings and
reviews & complaints.
Product/Service Pages:
Electric Ranges
Most Popular
More Options >
More filter options:
Product/Service Quality
Customer Service
LG HE Washer Because They No Longer Make Parts, My Option Is $400
Posted on
ORLANDO, FLORIDA -- LG High Efficiency Washer Orig cost $1099 – I got at discount then - LG wants to pay me $400 and take my washer because they dismantled and trashed my parts when they came out to service my washer with no parts available to replace
My LG washer purchased July of 2011 rusted around the disposal unit and the left front side.
When the Service tech arrived he disassembled my washer and then found the replacement part was the wrong one, would not fit.
He took both the replacement part and my part and said someone would get back to me on the replacement. This was July 19, 2014.
I have been told there is no replacement part and I will have to take $400 and they (LG) gets my washer. (This was from Eric at Corporate headquarters today 8/25/14)
I said (well- in other words - No)
I want my washer put back in one piece.
CNM140719528345 original date 7/19/14
Was this review helpful?
Add reply
Review Link:
Plastic around glass shelves crack easily
Posted by
I have owned this refrigerator for little over a year. And I will say it is a great product. Except for the plastic frame that goes around the glass shelves is cheap and will break easily. I called LG and said it wasn't covered under extended warranty and gave me a number of their parts distributor, for the plastic frame it was $66 not including shipping and handling. I went to searpartsdirect.com and found the same thing for $51 shipped. I hate to say this but I may order this from Sears . And I dislike Sears, their home improvement, customer service, sales people are bad. But their maintenance agreements would have covered this. And I have bought parts for numerous products and have saved money. And it gets delivered in a reasonable amount of time. I just want to let people know before buying parts from LG check other sites.
Was this review helpful?
Add reply
Review Link:
Control Knobs
Posted by
Range was purchased from Sears in Rotterdam Mall on 6/7/09. Model #LRG30357ST, serial # 902KMFE10179. The part # in question is EBZ37189609. Since the purchase of the gas stove we have replaced 3 of the control knobs located on the front of the appliance. These control knobs regulate the gas flow of the stove burners. The plastic shafts on all of the knobs continue to crack and break with normal usage. The knobs become very loose and fall off of the shafts. The cost of each knob is approx $75 and we have ordered the extended service plan due to the continued defect of the knobs. The newly purchased knobs were covered under the 1 yr warranty but these new knobs are also breaking down as the original knobs had.
The initial product was not faulty as there seems to be a design flaw. Each new knob is not any better than the previous knob we replaced. The knobs continue to become loose over time and fall off of the front of the stove??
Was this review helpful?
Read 42 Replies
Add reply
Review Link:
User Replies:
Anonymous on 06/22/2010:
Those things are that flimsy these days?
It may not look that good aesthetically but you could go to a hardware or some place that sells knobs for other types of electronics. You should be able to match some up with the stoves. A second hand appliance store with older parts might be a thought too.
Helpful on 06/23/2010:
Lakisha has a good suggestion. Take a knob to the Sears where you purchased it from. Compare it to other ranges and see if you can find one with some sort of reinforcement, even by another manufacture, that you can order.
Depending on its design, you may also pick up some small clamps at a hardware store. It could provide enough reinforcement to not have the knob break again.
Let us know how it turns out.
Clockspring on 11/17/2010:
What a relief! I was told by LG that I was the ONLY ONE IN THE COUNTRY that has called regarding a problem with the gas range knobs cracking. The original 5 knobs on my LRG30357ST gas range cracked within 5 months. A replacement set was received in June 2010 and they began cracking after 3-4 months. Just received my 3rd set of replacement knobs (with 1yr warranty about to expire). The cracking is clearly due to a design defect, where LG tried to marry a thin plastic stem with a metal insert, and the weaker plastic stem cracks in the same places every time, leaving the knob loose and wobbly. I asked LG to send a technician to my home to see the problem first hand. He came yesterday, saw the problem, and agreed it was a defect in the part. He then spent the next hour and a half in my home making multiple calls to LG customer service, technical support and the parts department trying to get someone to address the problem, but each time he was told that there has been no "bulletin" issued by LG's home office about this problem, so there is nothing they can do. There's no fix. A bulletin is not issued until enough people call to report the same particular problem, or until enough field technicians observe and report a particular recurring problem. So, the first ones to identify the problem are screwed. I asked if there is a replacement knob with a metal stem (what a concept), and I was told yes, then no, then yes, then no. Can't get a straight answer from anyone. I purchased my full set of LG kitchen appliances through Home Depot, and their suggestion was to just buy the extended 4yr warranty (reduced from $99 to $78 currently) for the gas range so I can get replacement knobs in the future if they continue to crack. With the knobs costing $63.66 each, it's probably the best option, but also frustrating to have to spend more of my money because they produced a defective product. Hmmm, let's save a dollar or two and make the most frequently used part of the range out of thin plastic...Not very smart.
trmn8r on 11/17/2010:
I had a similar issue with a Kohler kitchen faucet spray handle. Broke after a few years. I called, they pretty quickly agreed to send me a replacement, admitting that they had several complaints. They gave me a tip to help prevent it happening again. Through careful handling, it has not broken again.
Unless you are forcing these knobs once they have come to the end of rotation, it sounds like a design defect. The suggestions to use a different knob are good, but they may not match the stove.
Clockspring on 11/21/2010:
No, I'm definitely not forcing the knobs, it's a clear design defect that LG is not willing to own up to. The LG technician actually called to say he needed to come back to my home because they wanted him to test whether there was any resistance while turning the knobs when the burners were hot. He came, he tested, there wasn't. LG has given me every possible excuse, including that I'm cooking with the door open (nope), I have a damaged oven seal gasket (nope), and that I'm trying to turn the knobs without pushing them in first (nope). They even asked the technician whether I ("the customer") was fat! I guess they could then say I was possibly leaning on the knobs! The technician seemed to genuinely be frustrated with his own company's lack of customer assistance, and he suggested I buy the LG extended warranty to get the knobs covered rather than the Home Depot warranty, because LG has local technicians that will do the work. LG's cost is around $145 for 3 years. After a bit of web searching, it seems that the melting and cracking of the knobs on the LG ranges is a prevalent problem (check out all of the grief on Best Buy's customer review section). An interesting do-it-yourself fix can be found at the following site:
Hopefully LG will do the right thing and offer a metal-stemmed replacement knob. I'm not holding my breath.
Carol on 07/23/2011:
We have had the same problem with those awful LG plastic range knobs. I feel this is a real danger to stove use. LG has not been cooperative about the problem. What can we do?
Clockspring on 10/19/2011:
FINALLY! After countless calls and emails to both LG customer service and Service Net Solutions (LG's extended warranty provider) over the last several months, I recently received an email from LG admitting that the cracking of the gas range knobs is a known problem, and they offered to replace the knobs "FREE OF CHARGE IF YOU EVER HAVE AN ISSUE WITH THEM." After providing the requested serial number and date of purchase, I received a set of 5 replacement knobs about a week later. If your knobs are cracking every 4 to 6 months like mine, DEMAND your free replacements. Their distributors sell the knobs for upwards of $60 a piece, which is absolutely outrageous. Why they don't just fabricate an all-metal replacement knob is beyond me. It can't be more economical than sending replacement sets over and over again (I am currently on my 4th set, all of which have been sent free of charge, although prior to the recent email, they said they were doing it strictly as a courtesy).
Here is the exact text in the email I received from LG customer service:
Thank you for contacting LG Electronics
Thank you for taking the time to email us at LG Electronics. I will be more than happy to assist you with your inquiry.
In this case the knobs are designed to last but here recently we've been getting some customers calling in regarding the knobs that's why we will send them to you free of charge if you ever have an issue with them.
On the other hand we do appreciate you being patient on getting a respond from the LG group and we're glad to have you as a valued customer.
If you need any further assistance, please feel free to contact us back. Thanks again and have a fabulous day.
LG Customer Service
At Your Service on 10/19/2011:
Really good to hear you're getting taken care of fine.
Toni on 11/17/2011:
I have the same issue with my LG knobs and it also became a bigger issue with selling my home and recent inspecton. I have to replace the knobs or I will be charged for them in the closing of my home. Does anyone know the contact number to call for a free replacement? Thanks
Clockspring on 11/22/2011:
You can call LG's customer service department toll free at 1-800-243-0000. Be prepared for long wait times and then evasive responses. They will give you lots of reasons as to why the knobs are cracking, none of which are likely applicable, and all of which appear to be standard scripted responses to this complaint. Don't let them waste your time - the knobs are faulty, and they know it. If they don't offer a free replacement set, demand to speak to a supervisor. Or, you can try resolving it through email correspondence with their customer service department (www.lg.com, click "support" then click "contact customer service"). You may want to cut and paste my latest email from "Jason" in which he admits to the problem and offers free replacement knobs for the lifetime of the product. Good Luck!
David on 01/21/2012:
LG needs to take this problem a lot more seriously. Over the holidays my family was visiting and I walked in the kitchen to a strong smell of natural gas. My elderly mother had been cooking and thought she turned off the stove. In fact the metal ring had twisted inside the plastic, and the room had been filling with gas for a long time. When I started shouting and opening the windows and doors, my mother ran in the kitchen apologizing and trying to "turn off" the stove again. thankfully I got to the stove first. If she had turned the knob it would have caused a large explosion, as the room still had a lot of gas in it.
I am going to put LG on notice that they are defective design is eventually going to kill somebody. It was the scariest event I've had in a very long time and when I started to do web research I'm finding that this problem is extremely widespread and LG needs to do something immediately.
Trang on 03/06/2012:
We have the same problem with 3 of our control knobs. It is very dangerous. My son used the gas stove and couldn't turn it completely off due to the defects of the control know, I came home from work one day and the house was filled with very strong gas smell!
Frustrated in Hopland on 03/08/2012:
I Have the same complaint regarding the Knobs. I feel this is a money making scam. That's why they charge so much for the knobs.
Patti in California on 03/08/2012:
I have a different problem with LG knobs. The knobs are only wrapped with a chrome looking foil. I had the stove for 6 months and 3 of the knobs had wrinkled foil. One now is peeling. Any suggestions. I don't want to pay $70 each.
Cola on 03/10/2012:
Wow this is not good. Have the same issue with my stove not being completely off because of the cracked plastic on the knob. Just contacted LG. hopefully they will send replacement knobs asap.
ianto39 on 06/11/2012:
Have reported the product to US Product Safety Commission, www.saferproducts.gov
It's not enough to just replace the knobs with new ones, at $30 a pop, because they split without warning again and the same thing happens, you come home to a kitchen full of gas. LG - you need to deal with this - It's going to start being on local TV etc, and if you're lucky not with a burned out apartment building in the background.
JP on 08/10/2012:
Same problem, LG Gas Stove knobs are cheaply made and the plastic is breaking with normal use. How they can charge $78 for this garbage is crazy. The "D" shaped connection to the stove is standard, so I will try to get a replacement knob that is not a LG product.
DvsLiu on 08/16/2012:
Easy fix. use a small zip tie and tighten around the plastic crack. then super glue it it all together. while the company needs a class action suit we shouldn't have to deal with people paid to waste our time on the phone or paying $80 a knob.
SHANE on 11/14/2012:
Same problem here as well. I called LG in early 2010 when my 1yr warranty had just expired and explained all of the same above mentioned issues that everyone has posted. This is a complete outrage that LG will not stand behind their product and now I the consumer, along with 100's or maybe even 1000's of other consumers must suffer the consequences. I too am on my second set of knobs(with one left of the five that has not yet broken)and I have to get back on the phone again and try to fight for another set of free knobs which I fear they will not replace for free. This is a major safety issue and just like the earlier post by David in January of this year, I had my father here for the week while we were on vacation and the same incident happened. He thought he had turned off the stove knob, but in fact it was spewing out gas into the house for over an hour. Thank god another relative that came to visit him smelled it as soon as they walked in and immediately shut the gass off and opened windows. If my father had been a smoker or even happened to turn on the stove again, I would have no father and no house. I wonder what LG would say then! So I guess what I'm saying is on behalf of everyone that is effected by these faulty knobs, (LG)if your listeneing or if your reading these posts or any other complaints that many people are posting on the web or advising your customer service reps about, PLEASE fix this issue! Do the right thing and stand behind your product! Have these knobs recalled and replaced with a better and more durable knob before someone just like myself doesn't have the chance to save a loved one or their home because LG stood by and made a bunch of hainess excuses to not fix the problem!!!!! I am a big consumer of LG Products throughout my home and I have to tell you this stove is the only complaint I have, but at the same time it is a very serious and deadly one!! PLEASE DO THE RIGHT THING AND ISSUE A RECALL.....
lg customer on 01/15/2013:
Just called LG and they are replacing all 5 knobs free of charge. Better design. When I called service advantage they said they had no complaints and that they would cost $61 a knob! LG had no problem offering to send the knobs.
Walter in Chicago on 01/17/2013:
Add me to the 100s and 1000s with same problem. Purchased gas range a year ago and now on my second set of knobs. I have extended warranty too, but doesn't cover knobs, which are from $35 to $75 each. Will never buy another LG product.
Geralyn in Wilson, NY on 01/30/2013:
Add me to the list as well. LG just sent replacement knobs.. as all 5 of them had broken plastic D' rings. My question though, has anyone found the right size clamps to put on the replacement plastic ring before putting them on the stove? I also agree that this is a safety issue, as the gas burner can remain on when one thinks it is off -- because of the broken knobs.
Thank you.
Geralyn on 02/08/2013:
A Solution! My Hubby purchased hard steel split bushings from the hardware store and cut them to length using a cut-off wheel, and hammer-tapped the bushings onto the replacement knobs from LG, around the plastic D rings before using them. The metal bushings fit nicely into the receiver and provide the strength and durability that is needed to the knobs. LG will send you replacement knobs free of charge, if you ask them to via customer service. The bushings cost us less than $5.00 ... a far cry from the $84.00 per knob price that we found online.. The bushing needs to be: Outside Diameter - .500, Inside Diameter .395 and length - .230 worst case, a machine shop can cut them for you... still at a fraction of what the replacement knobs would cost.. and will last a lot longer!
Judy on 05/03/2013:
I am having the same problem. The knobs are clearly defective. Customer Service did replace the knobs once and within a few months, they were all cracked again. I smelled gas once and realized that one knob must have been bumped...not enough for the burner to light but just enough to emit a small amount of gas. This could have been a tragedy. I don't know why RECALLS for safety reasons (as with defective car Parts) aren't required.
gary on 06/11/2013:
have a gas range model LRG3095ST since December 2013 knobs started cracking right away. all of them are cracked now. repaired once but did not hold, plastic crap. new knobs are 40.00 per knob times 5 that's 200.00 dollars for same poorly desinged knob. fat chance they could admit their mistake and give new ones free n/c
Michael on 07/06/2013:
I also have an LRG3095ST model range and 3 out of 5 knobs are defective. I called LG and asked for a replacement set and they said to send in a copy of original receipt. Luckily, I kept the receipt and will send in to them for consideration of free replacement knobs. The design is flawed and LG should replace or come up w/ free ones for anyone with these gas ranges. It is a safety issue that should not be ignored by LG.
at least they warrantied on 08/12/2013:
I had the same problem with my LRG30357ST stove. Called LG today and they are sending me new knobs free of charge. Sounds like they are acknowledging the issue, too bad they are not trying to address the design defect, just sending new knobs.
Elaine on 08/25/2013:
LG has corrected the design. The new knobs are lined with stainless steel and not plastic. It took some doing to get the correct parts sent to me but I used Andrews Electronics online and after several incorrect orders we found the right knobs to replace the old ones. No more plastic on the knobs.
Adam on 09/22/2013:
I can imagine LG staying in business for too long with this kind of attitude towards their customers. We have the same problem with our stove and we will fight until we get a replacement. One technique I used in the past with other companies was to tell them that you I will go to the media with the story if they don't do something about it. Thanks for all the tips.
Denise on 09/23/2013:
I also had cracked knobs, less than 3 months after use. Lg replaced them and admitted it was a design flaw. Wait till you get a F3 on your display and find out you need a new control panel. Fighting that one now... And guess what they know it is the lower oven timer sensor. I have never used that feature. Another design flaw? Have no doubt, will not be purchasing another LG anything. Life isn't that good.
ED on 10/24/2013:
every one with this issue needs to keep after LG until they issue a bulletin regarding this defective part. Please MAKE them support this DEFECTIVE design flaw!!!!!
Steve L on 11/03/2013:
I am having the same issue. Not only are the knobs faulty but even the ones that still have the insert intact are incredibly easy to turn accidentally. I just bought a carbon monoxide and natural gas alarm because I've only been in this house 2 months and had 2 issues. We are lucky to have caught them before it got too dangerous. Calling LG tomorrow but with no receipt because we just bought the house I hope I don't have issues.
chimene on 11/14/2013:
Same problem, purchased the stove two years ago and all knobs are broken. Will try to resolve with the information that you have provided. Thanks so much.
Arthur on 11/16/2013:
I read all these posts about the knobs. I have an order for a LRG3095ST as well as an order for a LG microwave due to be delivered next week. I am cancelling everything and will not do business with LG
MaryEllen on 11/16/2013:
Same problem. I called LG and they told me that I had to provide proof of purchase even though I provided my serial number. I asked if this has been a complaint that they were aware of and I was told yes and that they have upgraded the knobs. They also want me to provided pictures and I told them that they would not be able to see the hair line cracks or the center plastic piece that is worn out.
I took a trip to the local hardware store and took one of the knobs along with me. I purchased some 3/8" nylon washers and they slipped right over the stem of the knob. Perfect fit now the knobs fit tight on the stove and it only set me back $1.89!!!!
I wish I could post pictures here so you could see the finished product.
eric on 11/26/2013:
just got off the phone with LG. didn't even have to ask for replacements without them offering to send 5 new knobs. sounds like they are owning up to the issue.
Lisa on 12/04/2013:
I have had the same problem, and a couple of times the gas leak/air out the kitchen scare. It usually happens on the superburner
Lisa on 12/04/2013:
I am happy to report that Carla with LG was very helpful
Kris on 12/15/2013:
I just got off the phone with Jane. Because this is the 3rd time that I have complained for this same problem they had it documented in my file. This is the 3rd time time I have had the knobs replaced for free. Hopefully this is the last. My dishwasher, and microwave have all had numerous service problems as well. I will not purchase LG products again. You get what you pay for.
Jose on 02/05/2014:
Just got off the phone with Homer I told him all 5 knobs on my LG range broke I was on hold for a while and they are shipping me 5 knobs free of charge this is my info.
Purchased on 2/15/08
Number I called for the free knobs
Doctor Z on 03/13/2014:
Same problem. LRG30357ST, built July 2009. Had to push rep. by telling her of known problems (on this and LG's own website!) and ask to speak to her supervisor after she politely told me LG had no record of any issues. But new knobs are in the mail. Took about 20 minutes on phone.
Mo on 04/02/2014:
Same issue here. All 5 knobs.
Model LRG30357ST, purchased on 7/12/09.
Called 800-243-0000, spoke with Jane (very helpful), and they are sending me 5 replacement knobs for free. They'll arrive in 7-10 days.
Not too much hassle. Just have your model number, serial #, place of purchase, and date of purchase.
Close comments
Add reply
Compliant of the Poor Customer Service Centre of LG (Hong Kong)
Posted by
HONG KONG -- I had purchased a 'LG' TV (Model:26LG30R-TA) in the Fortress shop (Hopwell Centre-Hong Kong) on 1st Feb 2009. The TV was delivered to my house on 7th February 2009.
During the last Christmas in 2011, my LG TV was malfunction and there was no picture after I switched on. In many occasions, I had to wait for more than 15 minnutes before the picture bacame visible. I thought it was due to humidity, therefore, I did not contact the 'LG' customer service center (tel:(852)3543-7777) until 30th January 2012. When I explained to the LG staff about my TV's problem, the staff did not log my compliant or asked for more details or referred to the Repair Sction to rectify the problem. In stead, the female staff asked me to provide the receipt of my TV. When I told her that I had lost the receipt, she simply told me to copy the model no. of the TV set and serial no. at the back of the TV set and asked me to approach Fortress to get a copy of the purchase invoice.
As I had to work on the week days, therefore, I had waited for a few days and visited the Fortress Shop on 4th Feb 2012 to request a copy of the purchase invoice. The straff from the Fortress Shop after checking with the computer record and told me that the warranty of the TV was expired on 2nd February 2012 (two days ago), as the warranty period for my TV is for 3 years.
I had contacted the Customer Service on the phone immediately to explain the situation. The sfatt from LG insisted that the warranty was expired and later a male staff call me to inform that he could arrange someone from the Repair Centre to check my TV without charge. After the repair technician checking my TV and the Repair Centre contacted me to inform that there is no spare part to repair my TV.
After I had waited for a few days without any further information from LG Customer Service, I had decided to call them. Unfortunately, one of their staff insisted that they do not take any responsbility, as my warranty was already expiry.
I had sent a letter to the Consumer Council (Hong Kong) to seek help from them with the following reasons:
1. WhenI reported the problem, if the Customer Service Staff handled immediately, my TV would still under the warranty period.
2. The warranty policy was not clearly stated to the customers, as I purchased the TV on 1st Feb 2009 and they delivered to me on 7th Feb 2009. The 3 years warranty period should be counted from the date of delivery and not the date I ordered the TV set,
3. When LG sent a technician to check my TV, that gave me an impression that they had admitted the responsibility to fix it, otherwise, they should sent him to inspect my TV.
Few weeks ago, I received a call from Consumer Council and a gentleman told me that LG is willing to replace a similar TV set to me, as the one that I purchased was out of stock. I was very happy about the arrangement, unfortunately, after one week I received another call from Consumer Council that LG has changed their mind and decided not to replace my malfunction TV.
I am preparing to take legal action and bring the case to the small claims tribunal. I am happy to share the outcome at the later stage.
Kind regards,
Steven Tsang
Was this review helpful?
Read 2 Replies
Add reply
Review Link:
User Replies:
onlooker on 04/30/2012:
Please tell us how this works out. LG changing their mind to the Consumer Council is odd.
kksan288 on 11/29/2013:
Mine LM8600 47" has a lot TV lost signal problem and error shown in picture for a year. None of response recently.
Close comments
Add reply
Don't Buy LG Bad Product Bad Service Bad Attitude
Posted by
ARIZONA -- This is a really long article and I apologize for the length but this has been an unbelievable experience and the American People are being milked of their hard earned money and then being insulted for it! Please make sure you read all the pages! I am really tired of getting robbed and then pushed into a corner and ignored!
I purchased the LG Tromm Wild Cherry Front Load Washer and Dryer in March 2007 it is now August 2007. I paid $2,994.12 when all was totaled up with the two drawers, cords, vent, dryer, taxes and delivery!
I too have a mold smell in the washer. I don't care how pretty this set is or how many bells and whistles it has, when your clothes smell like mold all the positive goes out the window!
I called LG service informing them I had done all the proper maintenance per the manual and I suspect the smell is coming from under the rubber gasket closest to the tub. There is water and debris under the gasket and that my fingers were not small enough or strong enough to clean under the seal.
I was told the following by LG's service department, use a butter knife to clean and dry under the gasket, I refused stating that I saw nothing in the manual suggesting this should be done especially with a butter knife. Fearing this would void my warranty I refused stating if the manufacturer wanted me to do this they should have provided a tool with instructions. He then suggested I have one of my kids come over and clean my washer for me once a week! I told him again that I had cleaned my washer per the manual's instructions and I feel the rubber gasket is defective due to the stagnate water underneath the seal. He told me to use 1 cup of bleach to 1 gallon of water and clean the seals. I again told him I saw nothing in the manual about doing this. He said they would send a technician out to replace the seal. I told them I did not think this would correct the problem, unless the seal is redesigned the problem will reoccur.
I had to wait one week for the service appointment. The night before the appointment the technician calls me at 8:30 in the evening and tells me I need to go to Home Depot and purchase some ZEP, he is not replacing the seal, I am using too much soap and he is going to clean the residue out of the machine using the ZEP (this product is for the removal of MOLD & MILDEW).
The following day the technician comes he tells me that the owner's manual was written by Koreans and it was not properly interpreted regarding the measurement of the soaps and fabric softeners that I should only use 1 ounce. The technician gave me a little cup for soap and told me not to fill it above this line. I told the technician I have used the HE detergents per the owner's manual, I have measured the HE soap and fabric softener according to the manual, I have cleaned the filters per the owner's manual, I have dried the seals per the owner's manual, I have left the door open per the owner's manual and the main drain hose is installed per the owner's manual. When I asked him why the instructions were not corrected or the customers notified he informed me that it was suggested to the Koreans and because it was not their idea they would not do it, anything they do has to be their idea. He also went on to inform me that the boss in Korea thinks Americans are stupid and lazy. I asked the technician where the company was located in North or South Korea. He said in South Korea. That the corporate office was close to North Korea but the manufacturing plant was in the Southern part of Korea. This did not leave me with a real warm and fuzzy feeling especially after my son just spent a year of his life protecting them from the North Koreans!
The technician then used ZEP for the removal of MOLD & MILDEW to clean my washing machine (this is not in the manual either!). He requested a large towel to blot the soap that was in the bottom of the washer after he ran the cycle telling me that the washer does not remove all the soap after a cycle! Yikes no wonder my clothes are all smelly! Well, he assured me this would solve the problem and my worries would be over if I remembered not to use too much soap. I took the little cup he gave me and using the manufactures recommendation on the bottle poured the amount into the cap, I then transferred it into the cup he gave me and to his dismay it was the same amount using Wisk Tide was just a little more. He put in a load of towels, put in the soap himself, started the machine and reassured me this would work before he headed out the door.
Forty minutes later I have a finished load that still smells like mold!
I called the LG service department after going online and printing out pages of comments about mold and the LG frontload washer! I told them I wanted them to pick up the appliances and refund my money as I would have to purchase a new washer and dryer. Well, they told me they would have to escalate the call and it would take 4-6 weeks until I heard from someone. They told me that they do not do refunds. They told me they would give me a $15 a week allowance to go to the laundry mat! HA! I hope the North Korean's have a good aim! I am done with LG, their products, their service and their unprofessionalism.
Was this review helpful?
Read 2 Replies
Add reply
Review Link:
User Replies:
*Brenda* on 08/17/2007:
I've had the same washer/dryer (red too!) for a year and I haven't had that problem. I've also never noticed soap still left in my clothing.
It must be so disappointing to get such a good set and then have it be a dud. I hope this gets worked out for you!
Cavaet Emptor on 07/24/2010:
I have had the very same problems with the smell of mold and mildew in the gasket. Also, my washer leaked. What's worse, I have to adjust my washer feet after every other load. It vibrates likw a jet engine. This is crazy! LG needs to be sued! Is there a class action suit going?
Close comments
Add reply
Possible class action lawsuit on LG company?
Posted by
duped, again
I bought my first house in July 2009 and decided I needed brand new appliances to go with it. Besides, I am a single parent of three working 60hrs a week and trying to go to grad school. So, in order to save me some headache of having to deal with brokendown appliances, I decided to buy an LG LFX....SB brand of french door refridgerators. I took out a one year warranty on it and after 6months, the ice maker stopped working. I called Lg and they came out to look at it and had to replace a part, of course I was still on warranty. 9 months later, I called them because the bottom freezer will not open. They came, replaced some parts and fixed it. Exactly 16 months after purchase, an FF error code started showing on the display panel and later converted to an IF error code and my refrigerator part of the whole thing was not cooling, nothing was wrong with the bottom freezer. Lg told me I was out of warranty and had to call their authorized service repair man to come take a look at it at my own expense.
I called the service representative and was told the earliest they could come out will be in a week and I have to be home since they don't work after hour. At this time I had stopped buying groceries since I had nowhere to put them and half of the last groceries I bought were thrown away. I decided to call a reputable repair shop locally and the guy told me I had trouble with my evaporator motor fan that works the fridge. I ordered the part from Lg and was told it will take two weeks to have it delivered. At this point, I had to go buy a compact size fridge for milk and all what nots. Part came, repair man worked on fridge, it did not work. After reading the report on the Lg brands and after $350 on parts and labor, I have decided to count my loss at this time and just move on. My kids and I are going to use the compact size fridge for a while (I don't know what we are going to do for ice this summer, we live in Texas). I am going to call my school and take this summer off from grad school so I can work extra this summmer to replace the refrigerator. I am very disappointed with Lg and their products and my advice to anyone is never to touch an Lg refrigerator, or their other products for that matter, with a 10foot pole. Or buy 10yrs warranty if you must buy their products. By the way, I had a Maytag refrigerator that I gave out to my former neighbor as a parting gift when I bought my house. It is still in use after 5yrs, it has not been worked on since I bought it, not once. I wonder why there hadn't been a recall on Lg refridgerators or class action lawsuit. Americans work too hard for their money to be replacing appliances every 18months.
Was this review helpful?
Read 1 Replies
Add reply
Review Link:
User Replies:
bcd on 04/10/2010:
"… July 2009 and decided I needed brand new appliances …"
You purchased the refrigerator less than a year ago (the "16 months" statement doesn't make sense) so the unit should still be covered under the manufacturer's warranty.
You bought the compact size refrigerator and then waited two weeks to spend $350 on an unsuccessful repair instead of waiting one week for LG to fix it. That was a poor decision. Taking the summer off from school to pay for a replacement refrigerator is also a poor decision.
Close comments
Add reply
Life's NOT Good
Posted by
I purchased this range on 6/1 and it was delivered on 6/10/08. On 6/28 we experienced a problem. After running for a short time, the range went into "OVEN LOCKDOWN" which locks the oven door (with a turkey breast stuck inside) and disables all the top burners. I called LG explained the problem and even told them that I suspected the circuit board was bad. On 7/2 the repair guy (sub-contracted) showed up without the circuit board, looked at the range and said the circuit board was bad and they'd have to order it and he didn't know how long that would take. On 7/9, having heard nothing, I called LG again and was told that the part would be sent to the repair place and they would contact me in a few days.
I asked why the part couldn't be shipped overnight - after all I had been without the working range for 9 days - and (get this!!!) was told that for "Security reasons since 9/11" they aren't able to send electronic components overnight (hello???? Dell just shipped me an entire computer full of electronic components) After more complaints, they finally admitted that the circuit board isn't being manufactured anymore and they had to "locate" one - this for a $2000 range that was manufactured in Jan 08. I asked to speak with a supervisor - too busy to get on the line but would call back within a half hour. Four hours later I called and the person had gone for the day. I asked for another supervisor who rattled off the same excuses. I finally turned to the LG Website and through "Contact Us" sent an email describing my problem. Within a couple of days, I got a response saying they were still trying to locate the part - and then a follow up saying to disregard the first email and that they would be replacing the range.
All they needed was the purchase receipt which I faxed to the number they gave me. I also sent an email advising that the receipt had been faxed. That was on Friday and when I hadn't heard anything by Monday, I called again. The person I had faxed the info to wasn't in and they couldn't find it so I faxed it again to their team leader who told me it would take a couple of days for the approval to be sent to the Best Buy corporate office and that I would hear from them within a couple more days to arrange for the swap. I said that was unacceptable as I'd already gone 16 days without a working range. I asked for a supervisor who told me the same thing - but after some heated argument was miraculously was able to get the replacement approval, but I'd still have to wait for Best Buy corporate to do their part.
Thankfully, Best Buy cares more about their customers than LG because within a half hour of getting off the phone with LG, a young lady called from Best Buy Corporate with their approval number and all I had to do was contact a local store. The swap occurs tomorrow and I'm just holding my breath and hoping that the new range actually works. I would have gotten some other brand, but I also purchased the matching microwave at the same time and it's already been installed. I'll never, ever buy another LG product.
UPDATE: It's now 7/17 and Best Buy swapped the ranges today. After the delivery guys left, I turned the oven on to test it - set it for timed convection cooking for 3 hours. After 30 minutes, it shut off all by itself. I called the store and will be returning and cancelling the order and buying another brand and hope for the best.
Was this review helpful?
Read 2 Replies
Add reply
Review Link:
User Replies:
Anonymous on 07/16/2008:
""Security reasons since 9/11" they aren't able to send electronic components overnight"
I'm pretty sure they were just blowing smoke.
I know when I was with a Maytag Home Appliance center,LG came to us asking if we would handle the warranty service for them,of course I said NO! Parts are hard to come by,dealing with the factory is always a hassle
Good Luck!
awnsermaster on 08/01/2008:
first of all if the unit needs service and u the customer who is not a certified LG tech believes that the unit main board is the issue how can u tell ,and why would the service center pre order something without diagnosting your story has some pretty serious flaws to it .also if they did not have the part it would be exchanged like u just stated by saying that u fought with a supervisor to get the exchange I find ridculous because if the part is on back order 10 or more days LG automatically exchanges the unit and the calll back from the return dep. is within the first 3 biz days..and saying that bb exchanged the unit does not mean that they authorized it with LG's say
l.g employe any questions fell free to email I'll give it to u straight no run a rounds
Close comments
Add reply
LG Gas Range Knobs Over Priced And Bad Design.
Posted by
I thought I would be a nice guy and replace the knob on my mother in law's new gas range, so I get the model# and serial and go on line. I type in the model up come many sites for parts. I think wow what a fine product to have so many companies to provide parts. Not as bad as the Delta Drill press I bought in 09 and it was discontinued on me in 09 now I'm stuck without any options for parts.
So I purchase a knob $78.00 plus shipping cost. Ouch this to me is a rip off I paid 600. for my range and the one knob cost 1/6th of the price? Well then I go to her house 11 months later to find she now has 3 more knobs broken, I hesitate a bit, and say oh well It is my wonderful mother in law, so I go to purchase the three knobs and now they are $89.00 and have the tenacity to claim I saving $16.00 Each. Lets see now the cost of the replacement parts total $345.00 plus shipping. I could have bought her a new range from some other than LG 300.00 more.
Shame on LG and for Sears for selling these items. I urge you not to buy LG products.
Was this review helpful?
Read 3 Replies
Add reply
Review Link:
User Replies:
trmn8r on 01/23/2013:
Plastics that are no longer available from the manufacturer can be very expensive to make. I worked in cordless phones for a while, and I recall that a handset was dirt cheap for a run of hundreds of thousands, but hundreds of dollars each for just a couple.
I don't know if that explains why these are so expensive or not - with all the complaints, I would have thought demand would be high. Sorry to hear about your situation.
At Your Service on 01/23/2013:
This isn't bad business and it definitely not uncommon. Most manufacturers charge a great deal more for parts than for the entire unit put together. LG is no different than other manufacturers when it comes to that.
I point that will hopefully help, however. The reason the knobs are likely breaking is because of excessive force placed upon the plastic D shape, plastic opening behind the knob. The replacements, if used in the same fashion, will give way too. Do yourself a favor and drop by your local ACE hardware store. Purchase a set of small hose clamps which can be used to reinforce the knobs. Tighten them around the D orifice, allowing the clamp to conform to the shape. Be careful to not over-tighten as you don't want the piece to crack. The clamp should simply reinforce the plastic and keep it from cracking again.
Best of luck.
gary on 06/11/2013:
you should,t have to repair your new appliance with hose clamps because its made so cheap,at your service who do you work for LG
Close comments
Add reply
LG Cellphones
Posted by
ENGLEWOOD CLIFFS, NEW JERSEY -- I have just bought an LG Optimus V cellphone, & it is going back.
How this piece of junk gets 5 stars in reviews, I have no idea.
The on screen keyboard is the worst I've ever used.
Text messages are extremely difficult to type, send and store. I spent 45 minutes to set up my Calendar, because the keyboard is so poor. Entering text, for some unknown reason things go wrong, & you have to start all
over again.
Auto-text seems to be missing, and I don't want the Google calendar, as I have to sign in (my password is secure, and long). It frequently locks up.
Also the Micro-SD card sent was the wrong one (Mini-SD was sent without the mini-SD adapter and the micro-SD which fits into this)
Set-up is also a pain.
The manual has such tiny letters that I cannot read it without a magnifying glass. You have to download the. pdf file from Virgin.
Lastly, Customer Service at Virgin Mobile is the worst (poor English spoken, and it takes a long time to get an attendant due to the voice reply instructions/service). There is no quick way to get a real person
Avoid! (if you want to stay sane and heart-attack free)
I struggled to return this phone to Virgin Mobile.
Here are some facts that are difficult to obtain:
- Call and get an RMA number
- Return address for phone:
Virgin Mobile returns
c/o Brightpoint N America
2675 Reeves Rd, suite 190
- The price of the phone should be credited to your credit card
- Ask that the automatic monthly payments be suspended until you buy your
new phone (from Amazon of course)
- How to reach a live person:
Call 888-322-1122
Press 0 as soon as you hear "Alex", and keep pressing 0 for each request made for more information
- You may get your plan changed to $35 per month instead of $25 per month.
- If this happens, E-mail them at:
Demand a Beyond Talk plan for $25
- If all this fails, cancel your account, and start from the beginning. Forget your old account.
Hope this helps.
Was this review helpful?
Read 1 Replies
Add reply
Review Link:
User Replies:
madconsumer on 12/16/2011:
I have had LG telley's before, and have been very pleased.
Close comments
Add reply
System Stops Working After 4 Uses
Posted by
Over a year ago, I purchased the LG LHB975 home entertainment system and after 4 uses of watching movies the rear wireless speaker system stops working! I have sent it in twice for repairs and when I get it back, the same thing stops working after 4 uses.
I do not abuse the unit, in fact I only use it to watch movies when I have visitors, which is not that often. I called in to customer support manager after it has stopped working again and I request they have it replaced, but I get told all they can do is continue to repair it. I told them I paid 800.00 at that time just to continue having to send it backl over and over again. I recommend that consumers not purchase a stereo type system from LG, they may have good luck with cell phones, appliances, TV's, but home entertainment systems they need to work on soome more!!!
I am so frustrated that when I do want to enjoy an good new release movie, I have to keep my fingers crossed that I can enjoy it properly on the entertainment system.
it is like every time my family wants to watch a movie at home, I ask myself will the system be working today???? It is a piece of crap just as the customer support is from LG, their website stated that "Fixing It Right the First Time
LG Customer Service Representatives respond with accurate information to provide fair solutions to all customer issues on the first interaction. We take ownership, set accurate expectations, and follow through on all commitments so we never disappoint our Customers.", well I am still waiting for this statement to be true on their home entertainment system!!!!!!! DO NOT PURCHASE ANY TYPE OF HOME ENTERTAINMENT SYSTEM FROM LG, BECAUSE YOU WILL THEN BE COMPETING WITH ME TO GET IT REPAIRED AS I AM!!
Was this review helpful?
Read 3 Replies
Add reply
Review Link:
User Replies:
Skye on 07/25/2011:
What is causing it to stop working? Did they tell you what the issue is?
Whiteduck on 07/26/2011:
I've had a hard time finding any of these things that still have the wireless rear speakers, and that's what I want. I hate the wiring crossing the room. Maybe someone else will recommend one we can both go buy...
Thanks for the heads-up on LG, though.
vv on 11/24/2011:
Even I started to have problem with the subwoofer. Although wireless receiver shows Blue light, subwoofer still shows red light and is unable to connect to wireless received. I have synced (remated) subwoofer with receiver but of no use.
Don't know what to do. Hopefully someone wil help
Close comments
Add reply
Next Page >
Top of Page
Next Page >
Consumer Resources
Company Responses
Site Rules
Terms & Conditions
Privacy Policy
About Us


text:
American Journal of Archaeology
Journal of the Archaeological Institute of America has regular features, articles,
book reviews and excavation reports.
ArchNet – WWW Virtual Library – Archaeology
The archaeology section of the World Wide Web Virtual Library.
Archaeology Data Service: homepage
A searchable digital archive for archaeology, including Sites and Monuments
Records for parts of the UK and Excavation Index for England.
VL – Archaeological Resource Guide for Europe
Searchable and indexed guide to web resources, with evaluations by the editors.
Part of the WWW Virtual Library.
Ashmolean Museum of Art and Archaeology
Attached to the University of Oxford. Original collection donated by Elias Ashmole.
Includes FAQs, visitor and collection information, map, and schedule of …
English Heritage Archaeology and Survey
The department responsible for providing advice and expertise in archaeology and
archaeological science. Includes summaries of projects funded by the …
Irish Archaeology
Includes a web directory, the Newsletter of the Irish section of the Paleopathology
Association and book reviews.
Wessex Archaeology
This non-profit-making body based near Salisbury is one of the biggest archaeological
practices in the country. Services include maritime archaeology.
The Archaeology Channel – Welcome
Archaeology and related subjects presented through streaming media by the
Oregon-based Archaeological Legacy Institute. Videos can be viewed on-line and …
SAAweb – Society for American Archaeology
An international organization dedicated to the research, interpretation, and
protection of the archaeological heritage of the Americas.
Archaeology : An Introduction – an online companion � Kevin Greene …
Kevin Greene's selection of Internet links to supplement the 4th edition of his
book, by chapter and section, with alphabetical index.
Archaeology and the Bible – Christian Answers
News and articles by Associates for Biblical Research, which organizes excavations
and publishes the quarterly "Bible and Spade".
The Society for Historical Archaeology
This US-based society focuses on the New World, but also includes European
exploration and settlement in Africa, Asia, and Oceania. Directors, publications …
North Carolina Archaeology
Articles and information about the prehistoric and historic archaeology of the
state from the Office of State Archaeology.
Archaeology Fieldwork
Jennifer Hutchey lists archaeology fieldwork, employment advertisements, field
schools, internships, volunteering, and related resources, mainly for North …
Peabody Museum of Archaeology and Ethnology
Founded in 1866 by George Peabody, it is one of the oldest museums in the world
devoted to anthropology. History, departments, collections, galleries, events, …
Archaeology Magazine
This popular magazine also provides the latest news in archaeology from around
the world.
University of Cambridge: Museum of Classical Archaeology
Has casts of classical sculpture, pottery and shard collections, replicas of
coins, miniature bronzes and ivories, and Minoan and Mycenean reproductions.
Internet Archaeology – Electronic Journal – Home Page
Fully refereed electronic journal for archaeology, international in scope.
A collaboration of the British Academy, CBA and the Universities of Durham, Glasgow, …
Perseus Art & Archaeology
A massive catalog of Archaic and Classical Greek art, buildings and sites.
Each entry has a description, most with images. Tufts University in collaboration …
Articles and directory of Internet sites, including a world atlas of archaeology
on the web.
Biblical Archaeology Society
Magazine from the Biblical Archaeology Society covering excavations at Biblical
sites, and topics in Biblical archaeology. Articles and features from the …
The Institute of Egyptian Art and Archaeology- University of Memphis
Dedicated to the study of the art and culture of ancient Egypt through teaching,
research, exhibition, and community education.
Underwater Archaeology
Directory of resources on the Internet from Tanya Rabourn.
Archaeology in Arctic North America
In-depth discussion of arctic archaeology. Introduction, fieldwork, reconstruction,
artifact and faunal analysis, conclusions, references, and video clips.
Southwestern Archaeology Inc. (SWA)
Resources for archaeology of this region. Includes Got Caliche? newsletter,
contact information for archaeologists, and job listings.
The BibArch Home Page
High Top Media provides an overview of archaeology, chronology, news, features,
opinions, editorials, glossary. Also sells books and magazines.
Current Archaeology
The attractive site of Britain's popular archaeological magazine. Illustrated
timeline of British archaeology, articles from past issues, contents of the …
Michael Cremo and Forbidden Archeology Web Page
Companion site for the author of "Forbidden Archaeology".
Anthropology and Archaeology Pages by James Q. Jacobs
Archaeology related articles and galleries by James Q. Jacobs, covering
archaeogeodesy, prehistory, paleoanthropology, the Andes, Mesoamerica, …
dig – The archaeology magazine for kids!
Archaeology magazine for children from Cobblestone Publishing, in cooperation
with the Archaeological Institute of America.
What is Archaeology?
An illustrated introduction from the Department of Anthropology at the University
of South Dakota.
Journal of Roman Archaeology
An international journal publishing book reviews, articles and research findings
in the field of Roman archaeology. Contents and sample articles.
Maritime Archaeology – The Nautical Archaeology Society – Welcome
A British voluntary organisation formed to further interest in nautical heritage.
Membership, training, courses, news and projects.
Alexandria Archaeology Museum Homepage
The City of Alexandria's community archaeology program: Active excavation and
research program. Holds a collection from more than 150 sites, spanning 10000 …
Panorama Productions/Archaeology
An illustrated introduction to the discipline of archaeology from Panorama Productions.
Welcome to University of Pennsylvania Museum of Archaeology and …
The Museum has sent more than 350 expeditions to all the inhabited continents of
the world. Online exhibits, articles and research.
Archaeology, human evolution, human origins, and hominid images
Covers significant discoveries from archaeology about human origins. Illustrated
descriptions of hominids, with references. Articles, images, bookstore and …
The Prehistoric Archaeology of the Aegean
Series of lessons and illustrations, tracing the Aegean from Palaeolithic and
Neolithic times to Minoan Crete and Mycenaean Greece by Jeremy B. Rutter at …
Council for British Archaeology Internet Information Service
Gateway to British archaeology online. Press cuttings service, message forum,
fieldwork opportunities. Popular magazine 'British Archaeology' (news sections …
Institute of Nautical Archaeology
Scientific/educational organization; studies human history from the physical
remains of maritime activities.
Near Eastern Archaeology
Formerly Biblical Archaeologist, NEA is published under the auspices of the
American Schools of Oriental Research (ASOR), and focus on ancient world from …
Association for Environmental Archaeology
For the study of past human interaction with the environment through archaeology
and related disciplines. Events, newsletter, abstracts of its journal …

subset: commoncrawl


text:
<ac:macro ac:name="toc" />

Zend_Form was a big step forward with the 1.5 release; it provided a number of things that simply worked out of the box:

Filtering against XSS attacks

Form output

That said, it came with several problems:

Since validation and filtering were integrated into the form, there was no way to push that to the domain model easily; many developers found they were needing to duplicate validation and filtering efforts.

This is largely due to the fact that validation/filter chains are attached to individual elements, and not the form itself, making aggregation of all rules difficult.

The decorators, while powerful and flexible, (a) are also difficult to explain to new users, and (b) can pose new difficulties to the end-user (what precedence is taken? how do I alter output of this decorator? why does this one allow wrapping in HTML tags, and this one does not? etc.)

The chief goals of this RFC for refactoring Zend\Form are:

Separate validation/normalization from the form object hierarchy; forms should consume validation/normalization chains only, and only for purposes of error reporting.

Move view-related functionality – aka, the decorators – to the view layer, and make the functionality more declarative/programmatic.

Forms, fieldsets, and elements would primarily be value objects. Forms would contain fieldsets and elements, and metadata describing the form. Elements would contain their value, and then metadata describing the element.

General Architecture

Forms will aggregate:

Form metadata (action, method, id, etc.)

Elements and fieldsets (i.e., groups of elements)

Validation/Normalization chains (input filters)

Additionally, a Factory subcomponent would be provided. The factory will create Forms (and all the objects forms composes). Optionally, it can use a Builder, which will try to automate creation of forms based on annotated models and a provided Form Definition object.

It's unusual to validate an element in isolation. As such, validation chains should be attached only to the form.

MUST allow detaching/attaching validation/normalization chains, hereafter titled "input filters"

MUST allow defining a tree of elements (i.e., (nested) fieldsets of elements)

MUST allow retrieving a tree of error messages

MUST allow passing element-specific error messages to that element

MUST allow partial validations

SHOULD allow indicating which specific elements must be valid

COULD allow form elements to hint which validators/filters are desired, e.g., via annotations; a directive would then tell the form to use this data when retrieving the input filter.

In practice, the input filters would operate similarly to Zend\Filter\Input, though the goal is to provide a more programmatic API as well as a factory for generating the chains. Additionally, the chains for individual elements should be detachable.

The desired outcome is something like this:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$entity = new SomeEntity($data);
if (!$entity->isValid()) {
$form = new SomeForm();
// pass form to view model, etc.

Alternately, you could bind a model (an object). The form would validate data via its composed input filter, but, on validation, pass the normalized values into the model.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$entity = new SomeEntity();
if ($form->isValid()) {
// do something with the entity
} else {
// redisplay form

If you're not binding validated values to an object, you can simply retrieve them as an array.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$entity = new SomeEntity();
if ($form->isValid()) {
// Grab the values. If not bound to a model, returns an array; otherwise,
// this returns the model object
$values = $form->getData();
} else {
// redisplay form

To accomplish partial validation, you hint to the form which elements you're interested in prior to validation.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$form->setValidationGroup('username', 'password', 'password_confirmation');
if ($form->isValid()) {
$values = $form->getData(); // contains only 'username', 'password' and 'password_confirmation'
// setValidationGroup(Form::VALIDATE_ALL) resets to default behavior

Decorators are an elegant way to render elements. However, they are also very difficult to teach, particularly to developers not familiar with design patterns. (It also doesn't help that the implementation is mis-named; they more accurately follow the Visitor pattern.)

An additional problem in ZF1 is that developers and/or designers often want very fine-grained control of the output, making the decorators a poor fit.

My proposal is to instead create new and/or modify existing form view helpers. These would consume the form and/or element metadata in order to create output; a given object could be passed to several helpers to create compound output when desired. As a simple example:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
<?php echo $this->form($form)->emitStartTag(); // form opening tag ?>
<?php $email = $form->getElement('email'); ?>

<?php echo $this->formLabel($email) ?>
<?php echo $this->formEmail($email) ?>
<?php echo $this->formErrors($email) ?>
<input type="submit" name="submit-email" value="Send" />
<?php echo $this->form()->emitEndTag(); // form closing tag ?>

A view helper per general form input type will be provided, along with "generic" view helpers that will introspect the type and proxy to the appropriate specific view helper.

"Wait, this looks like a lot of work!" I hear some saying. However, using the lesson from decorators, repitition can be easily addressed: create helpers for common combinations:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
namespace My\Helper;
use Zend\Form\ElementInterface,
class WrappedElement extends AbstractHelper
public function __invoke(ElementInterface $element, $type = 'text', $class = 'element')

and the above would be used like this within a view script:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$email = $form->getElement('email');
echo $this->wrappedElement($email, 'email');

The goal for ZF2 is to provide a basic set of these "combination" helpers that can be used to accomplish basic form markup with minimal effort by developers. For anything more complex or specific, developers will need to write their own helpers and/or turn to third party modules.

Factory, Builder, and model binding

The Factory will be used to create form objects, filtersets, elements, and the input filter used by the form based on the configuration provided.

The Builder component would provide a way to generate forms from models automatically. Additionally, Form would provide methods for mapping values to models automatically. These features will benefit rapid application development.

MUST provide a factory for form elements

MUST provide a factory for filtersets

MUST provide a factory for forms

MUST provide a factory for the input filter

MUST allow binding form data directly to objects (models).

SHOULD include a form builder service to build forms from annotated objects automatically (type guessing, filters, validators, etc)

SHOULD be extensible to allow module developers to developer additional annotations, e.g., Doctrine ORM\ODM.

SHOULD provide caching to reduce the performance hit of building forms from annotations/reflection.

Sample class and definition

The following classes are used examples below:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
namespace My\Model;
use Zend\Filter,
Zend\Validator as Assert;
class User
- @Assert\Length(
Unknown macro: {"min"}
- @Filter\StringTrim
public $username;
- @Assert\EmailAddress
- @Filter\StringTrim
- @Element\Password(
Unknown macro: {label="My Super Cool Label"}
public $password;
namespace My\Form\Definition;
use Zend\Form\Builder,
class User
public function build(Builder $builder)
// Used to uniquely identify the form.
// Typically, this is the id and/or name used when rendering the form.
public function getName()
// Sets default Zend\Form options (action, method, etc) as well as
// specifying the model class for the definition (or anything else
// required).
public function getOptions()

Sample usage (create)

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
// Assume posted data contains:
// username: foo
// password: bar
// Assume a configured form factory with a configured form builder has been
// injected into the controller.
public function createAction()
$request = $this->getRequest();
$form = $this->formFactory->getForm('My\Form\Definition\User');
if ($request->isPost()) {
$user = $userForm->getData(); // My\Model\User
echo $user->username; // foo
echo $user->password; // bar
if ($userForm->isValid())
return new ViewModel(array('form' => $userForm));

Sample usage (edit)

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
public function editAction()
$user = new \My\Model\User;
$user->username = 'foo2';
$user->password = 'bar2';
$request = $this->getRequest();
$form = $this->formFactory->getForm('My\Form\Definition\User');
return new ViewModel(array('form' => $userForm));

These are some of the interfaces for the various objects discussed in the proposal. They should be considered incomplete.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
interface FormInterface extends IteratorAggregate, FieldsetInterface
const VALIDATE_ALL = 1;
const VALUES_NORMALIZED = 2;
const VALUES_RAW = 3;
const VALUES_AS_ARRAY = 4;
public function bindInput($data);
public function bindModel(object $model);
public function isValid();
public function getData($flag = FormInterface::VALUES_NORMALIZED);
public function setInputFilter();
public function getInputFilter();
public function setValidationGroup(); // likely proxies to input filter
<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
interface FieldsetInterface extends ElementInterface
public function add($elementOrFieldset, $order = null);
public function remove($elementOrFieldset);
public function getElements();
public function getFieldsets();
public function getIterator(); // iterate over elements and filtersets in order
public function setMessages($messages); // hash of element names => messages
public function getMessages($elementName);
<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
interface ElementInterface
public function setAttribute($key, $value);
public function getAttribute($optionalKey);
public function setAttributes($arrayyOrTraversable);
public function getAttributes();
<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
interface DefinitionInterface
public function getName();
public function getOptions();
public function build(Builder $builder);
<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
// allows listeners so that a listener can intercept types, inject options, etc
interface BuilderInterface extends \Zend\EventManager\EventManagerAware
// Map of element types => classes
public function setTypeMap($typeMap);
// Accept definition object or class name
public function getForm($definition);
// Annotations we know about
public function setAnnotations($annotations);
// Add an element to the form being built
public function add($name, $type = null, array $options = array());
Feb 22, 2012

Decorators: I have a few comments here actually since I have had to customize the set of decorators (visitors) numerous times. First off; ZF 1 had a root decorator (Xhtml) which if you needed to modify it would cause you to have to copy each and every other decorator in order for it to properly utilize the features needed. This was undesirable behavior.

An additional requirement might be to ensure no hierarchy or to provide the functionality through a loader. (the perfect trait use case)

Dynamic Form Elements: The hash element made ajax request processing far more difficult; the hash element should be refactored to allow (the browser) to have multiple tabs and have the ability to persist rather than being hard coded to a single session hop. This is important when processing the same type of form (such as accepting a task, etc).

Form Errors: Error messages were very difficult in ZF1; for instance, if you assigned an error to an element the form would not automatically mark itself having an error. Additionally the form API caused confusion to several developers when attempting to mark a form as an error. Form Errors should leverage the event system.

Subforms: I believe that this should be declared differently; subforms in ZF1 were used by different people in different ways. The general use case is for multi-page forms. I would like to see this renamed to better describe the functionality. In addition; it would be beneficial from an end-user perspective to assist in the workflow of multi-page forms.

Feb 22, 2012

+1 for annotations. Zend\Code already provides the foundation for them and my SpiffyForm module has them working already. It would be easy to port/update that code to work for Zend\Form.

Feb 24, 2012

-1 for annotations

Too much magic for me.

Mar 20, 2012

Usage of annotations would only ever be opt-in. Anything you can do with them, you'd be able to do programmatically as well.

Feb 22, 2012

I am concerned that the changes proposed here will make forms less useful in ZF2. In ZF1 they are at the heart of many controller actions in my experience. Taking validation and rendering away from forms might provide better separation of concerns, but it means we need provide that functionality elsewhere.

I think it would help to see more usage examples.

Feb 23, 2012

Are we using annotations anywhere else in ZF2?

Mar 20, 2012

Annotations are available as hints to the DI compiler now; they are opt-in, however.

Mar 20, 2012

Well, much of this stuff is already separate in ZF1, and where it's not, should be.

While we have the decorator system in ZF1, most of the actual work... happens in view helpers. Decorators are basically an additional layer of abstraction that developers need to master.

Validation and filtering already use Zend_Validate and Zend_Filter – they simply re-create the validation and filter chains in those components to be domain specific.

While it seemed like a nice idea to have filters/validators per element, in practice it led to a lot of subtle validation and rendering issues. That said, we'll likely have some with the proposed solution as well.

In terms of usage examples, for most cases, you'll still do this:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$form = new SomeForm();
if (!$form->isValid($someData)) {
// return an invalid form, and render it!
$values = $form->getValues();
// do something with the validated, normalized values

Rendering will look quite different, as it will likely be more explicit. However, you should be able to build helpers for rendering your entire form at once fairly easily – but this also has the advantage that you can change one helper to change rendering in many locations.

The main difference for creating your form objects will be in how you create your validation chain – which should not affect your controller code at all.

Feb 22, 2012

I like this design must more than the one in ZF1. I also appreciate the switch in language around "Normalization", as that is how I've always preferred to think about "filtering".

Thinking more about the annotations, I had been thinking about a "context" metadata item which would allow one to declare multiple contexts (i.e. create, update). Instantiating a form object with a context tag would set the appropriate validators and even elements for that context.

A simple scenario would be a user sign-up form where on initial creation, a password and password confirmation is needed. This form could be re-used for password changes (where only the password and a confirmation is needed) or for profile updates, where no password is required to make changes. Building up a single form object with context switching is much more tidy when you have multiple use cases that vary only slightly.

That being said, I'd love for someone to point out that there is already a better way and I'm just doing it wrong.

Feb 22, 2012

I'd prefer to just extend the original form and $this->removeElement('password'). Keeps things simple and IDE friendly.

Feb 25, 2012

Yes, I agree that this works (I do this in a couple projects); in fact, I generally create an "abstract*" type for each form with ALL the possible elements, then in the extended classes remove the unnecessary elements for that context.

For example:

acme\form\schedule\AbstractAppointment

acme\form\schedule\CreateAppointment (in many cases, this one has nothing to do but extend)

acme\form\schedule\UpdateAppointment (this one will generally set a couple instance variables, then remove a few elements)

I like the composability of this method; however, I see no down-side to having something baked-in as well.

BTW, Guilherme nails this idea down quite well here: http://zend-framework-community.634137.n4.nabble.com/Forms-RFC-now-up-td4409226.html#a4420536

Feb 27, 2012

But this feels like: I'm naked and someone wants to see my underwear. Now, what I do is getting dressed and then take off all of my clothes, except for my underwear.

Feb 27, 2012

It possibly makes sense not to fully initialize the for instance in the abstract class, but to provide methods that create form elements, add filters and validators, and then add these elements in concrete implementations, while retrieving elements from the abstract classes methods. Still, this doesn't solve the problem that you may need different valuations in different contexts.

But, the form element meta data for different contexts could easily be created from annotations as well, I assume.

Feb 27, 2012

+1 for contexts!

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$formManager = $this->getFormManager();
$signUpForm = $formManager->getForm(
$signInForm = $formManager->getForm(
Feb 22, 2012

I'd like to make a remark about PRG (Post-Redirect-Get). In the current ZF1 Zend_Form, the PRG is only possible if you store the input data and validate twice. If a form contains errors (after POST), you might want a redirect to a GET, but keep the error information for the user. It is currently not possible to store the input data and form errors separately, you must validate on GET again to show the error messages.

While this is "just" an implementation issue, I think PRG is getting more attention and should be considered as a primary use case for Zend\Form.

Feb 22, 2012

YES yes yes for PRG!

Actually it's somewhere between controller and view (plugin? rendering strategy?) than it's about the Form "widget", but I'd really like to see it mentioned in the RFC <ac:emoticon ac:name="smile" />

Feb 22, 2012

The point is rather about the "setter" for error metadata information. The implementation of PRG is up to the developer (framework user) imho. The problem now is you can set element values (Zend_Form::populate()) but not the error information about invalid elements.

Feb 22, 2012

I already extended Zend_Form to store error messages into a session and reset it after redirect

BUT it was much slower that re-validating the form after redirect because writing/reading much more session data.

True if you have expansive validations it's better to store the validation result but in must cases the string length and other simple validations will be made and that shouldn't be stored.

Feb 27, 2012

But why would you want to redirect after a failed POST?

Feb 22, 2012

Maybe it's better to avoid things like $entity->isValid() in favor of validating an entity against a validator chain or simply put - entity validator. Something like $validator->isValid($entity).

This may be useful as you might need to validate an entity against multiple validation strategies. Like for example when you have a User entity wich may or may not require a password field to be set (social login/on-site registration).

This can also be extended with custom user validators to ensure entity is in valid state for some domain operations in service layer.

Regarding validation of properties it may be not so very unusual. You may want to validate a single field via ajax for quick ui feedback on input.

That said I pretty much like the part on decorators & form rendering <ac:emoticon ac:name="smile" />

Feb 22, 2012

This is going to be awesome.

It would be great to have a more complete example of how you imagine the model validation, controller action, and form to work together.

A particular issue I have been struggling with finding a consistent way of doing is that some parts of the validation might be more "view bound" for instance validation of the format of a float, and maybe also the transformation from one decimal separator to another. While the validation of the value of the float is done in the model object (or validator associated with the model).

I assume it should still be possible to access form elements using a __get, so that the following is possible?

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
echo $this->formText($form->email);
Mar 20, 2012

Not sure about overloading to elements – this caused us a fair bit of grief in the past, due to the fact that overloading was expected to work for each of elements, display groups, and sub forms. I'd prefer an explicit method call, e.g. $this->getElement('email'), as this makes it clear what you expect in return.

Feb 22, 2012

I think we could use an anonymous function for view.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$f = new StdClass(); //simule form class
$f->action = "index.php";
$f->method = "post";
function form($form, $fun_call){ //simula view helper
echo "<form action='$form->action' method='$form->method' >";
echo "</form>";
form($f, function(){?>
<intup type="text" />
Feb 22, 2012

I'm really sad to hear that decorators are to be eliminated <ac:emoticon ac:name="sad" />

I'd say that the most common practise in our development is to create the decorator stack first, then create the form and don't care about how will they look - they will be awesome <ac:emoticon ac:name="smile" />

We used completly remade decorator stack to style our forms. We did that twice. Once when we were switching our table form layout to Zend_Form (in 1.5) and then lately when we switched to form-fieldset-label-element layout. There were about 70 forms or so. They all changed at once, in predictable manner. There were only a few (about 5 or so) exceptions - that used specific decorators - mostly to align something in the table. Imagine switching 70 forms, some of them with many elements, to different layout using the proposed solution. Thats days work. It took us not more than a few hours! Last but not least - it saves tons of HTML code to write and keeps your views clean for actual content.

Also the proposed behavior can be archived simply with decorators. Just removeDecorators() and then echo $this->form->element or write simmilar view helper as the one proposed.

Decorators are great. View helpers for echoing certain elements can not match their benefits.

Feb 22, 2012

There's no reason you can't take the view helper above and expand on it to handle generating an entire form.

For example,

<?php echo $this->renderFormAsP($form); ?>

If you had 70 forms all rendered using this one view helper then they would be updated automatically anytime it changed. The edge-cases would be identical for those few forms that required something special and would require manual updating.

Nothing has changed - it's just a different (better, imo) way to get the same result.

Feb 24, 2012

I've actually grown to like them, I just dislike when they're preloaded, or loading things unnecessarily.

removeDecorators() "remove" assumes they have been loaded; should be disableDecorators() and no extra files and no extra overhead should done.

Almost everything is pre loaded: elements, filters, validators, a lot of files are loaded and a lot of which is not always necessary; if isValid is never called, why load the validators, filters? If you don't render the form why should the decorators be loaded, and configured, etc.

I think they should be kept, but made much more lightweight.

Being able to write a global form+elements decorator definition descriptor as one simple array for example. One that is mergable to a default descriptor might be nice. If that makes sense.

Mar 20, 2012

Actually, you're wrong. <ac:emoticon ac:name="smile" />

I did a ton of work within Zend_Form to make sure that things were lazy-loaded. While you specify what you want up front for decorators, filters, and validators, if you look under the hood, unless you pass in objects, no objects are instantiated until they are requested. This means that if you only render the form, no validators will be created (filters will be, as they'll be used to filter any default values you provide); if you only validate a form, no decorators are created.

With the proposed design, if you do not pass your form to the view, no helpers will be instantiated. If you do not validate, it's likely you'll not get an instance of your input filter, either (assuming it can be lazy-loaded).

Feb 22, 2012

I added some information regarding object binding and generating forms from annotations similar to http://www.github.com/SpiffyJr/SpiffyForm. SpiffyForm is a touch outdated and I feel this RFC better reflects what I (and guilehermeblanco, from his message on the ML) envision forms being like. Note: even with the automated builder you could completely bypass the functionality and instantiate Zend\Form per normal. This is simply an additional option to build forms quickly and easily.

Feb 25, 2012

The RFC reads as though it implies hydration works only with public model properties. Is this the case?

Feb 27, 2012

No, I was just in a hurry. I can update it...

Feb 28, 2012

Any thoughts on how Zend_Dojo_Form would be impacted by these changes? I'm not sure if there's been any discussion around the Zend_Dojo component for ZF2 yet but assuming it is going to be kept then whatever the plan is for forms would need to work for the Dojo form component as well.

Mar 20, 2012

Shouldn't impact it that much, though getting Dojo support in place will be prioritized for after getting a stable form component in place. The main difference will be that decorators will not be used, and the view helpers would accept Dojo form elements and pull metadata from them to produce markup.

Additionally, we need to update the Dojo component to use 1.7, which is a non-trivial task.

Mar 21, 2012

This may be throwing the cat amongst the pigeons but...

Considering the direction ZF2 is going in and the current chatter on the ML about separating the Service components might it not be better to offer the Dojo/Jquery based stuff as a separate components/modules.

That way it becomes an optional choice, can be updated independently of the framework, etc, etc... you get the idea.

Mar 21, 2012

I've actually been thinking along those lines myself. <ac:emoticon ac:name="smile" />

Mar 20, 2012

I have one suggestion. I don't propose solution, unfortunatelly.

Validating JS generated group of elements using Zend\Form. Typical use case - product has a parameter. Parameter values are added into textboxes. There is a link "add another field", which creates new textbox. Validating such construct was always complicated in ZF, as one needed to either validate manually or save number of textboes in hidden field, recreate them and attach them to the form.

Having some simplified way to do this would be great. Any ideas?

Mar 21, 2012

Create a "form" that only deals with the values from such input, and have those inputs come in as an array. Loop over the array, passing in the data from each to this "form", and validate each individually.

Mar 21, 2012

What say you to "contexts" (RE: http://framework.zend.com/wiki/display/ZFDEV2/RFC+-+Forms?focusedCommentId=46793017#comment-46793017)?

Element Metadata vs. Attributes

Regarding element "metadata" (action, method, id, etc.), perhaps the term "attributes" have a bit more parity with what we are actually depicting. Thoughts?

Retrieving Values

I think a slightly modified API could be nice here:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// Grab the values. If not bound to a model, returns an array; otherwise,
// this returns the model object
$values = $form->getData();

I was thinking something more like:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// get the filtered key-value pairs
$values = $form->values();
// you can also pass FORM::VALUES_FILTERED to be explicit (optional)
$values = $form->values(FORM::VALUES_FILTERED);
<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// get the raw (unfiltered) key-value pairs

Validation Groups API

IMHO, this:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$form->setValidationGroup(['username', 'password', 'password_confirmation']);

would be a nicer API to express intent than:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$form->setValidationGroup('username', 'password', 'password_confirmation');
Mar 21, 2012

Wil – unless I'm missing something big, I think the concept of validation groups largely answers the concept of "contexts" you raised - it allows specifying a selection of elements to validate and, if desired, bind to a model.

Re: attributes vs. metadata – that works for me, and retains a relationship to ZF1. I'll update with that information.

Re: retrieving values – I like the idea of being able to indicate raw vs. normalized. That said, i think the "getData()" method makes more sense here than "values()", as it allows dual-purpose usage to simply retrieve values or retrieve the model to which the values are bound. I think having a flag for "VALUES_AS_ARRAY" would also work nicely here, as it could force retrieving an array vs. the bound model.

Re: validation groups API. We're targeting 5.3, not 5.4, so the short array notation is a no-go. <ac:emoticon ac:name="smile" /> I designed the method with the idea of using func_get_args, as this makes it possible to omit the array() syntax; having a constant value to override previous settings is considered a good practice – and will likely map to a simple scalar value as well if you want to omit the constant notation.

Mar 21, 2012

the concept of validation groups largely answers the concept of "contexts"

True...I wrote the context reply, then read about "setValidationGroup" and meant to delete the note about "context", but forgot <ac:emoticon ac:name="smile" />

+1 for "setValidationGroup" and given your reasoning, I am fine with the non-array API. I realize I wrote the 5.4 syntax, but with the idea that if you were using 5.4 you'd get the nice syntax, but if not, you just need to write "array()"... Neither here nor there at this point though.

Re: attributes vs. metadata – that works for me, and retains a relationship to ZF1. I'll update with that information.

Re: retrieving values – I like the idea of being able to indicate raw vs. normalized.

That said, i think the "getData()" method makes more sense here than "values()", as it allows dual-purpose usage to simply retrieve values or retrieve the model to which the values are bound. I think having a flag for "VALUES_AS_ARRAY" would also work nicely here, as it could force retrieving an array vs. the bound model.

I can live with that.

Mar 21, 2012

What about HTML5 form elements? Number, email, etc.?

Mar 21, 2012

We should likely add these – if nothing else, we should add view helpers for each.

Mar 21, 2012

It would be cool to have some default filters/validators on them - such as EmailAddress for input[type=email] element or Digits for Number element.

I came accross an implementation for ZF1 http://www.enrise.com/2010/12/html5-zend-framework-form-elements/

Mar 27, 2012

Would it be possible to bind a model with a relational dataset into the form factory builder? Or am I opening a can of worms?

When adding a "User" to my system they could be required to complete a "UserProfile" upon registration. I may want to drive the annotations from each of these models into ONE form.

Something I could do within "My\Form\Definition"?


text:
- Home
- Your Health
- Gynecomastia
|Copyright © Nucleus Medical Media, Inc.
- Adolescent puberty changes
- Aging, especially in association with low testosterone levels
- Certain genetic disorders causing low levels of testosterone
- Certain medications, such as digoxin, spironolactone, cimetidine, and many others
- Anabolic steroids used to enhance athletic performance in sports
Risk Factors
- Age: adolescent or over 50
- Obesity
- Excess alcohol consumption leading to liver cirrhosis
- Chronic liver or kidney disease
- Presence of a condition or medication that decreases androgen or estrogen production
- Family history
- Marijuana use
- Hyperthyroidism —overactive thyroid gland
- Tumors of the testicles, lung, stomach, liver, kidney, or pituitary gland
- Enlargement of the breasts with firm tissue, usually starts on one side and go on to affect both breasts
- Tenderness
- Blood tests
- Biopsy
- Excessive alcohol consumption
- Steroids
- Marajuana
American Academy of Family Physicians http://familydoctor.org
American Academy of Pediatrics http://www.healthychildren.org
Health Canada http://www.hc-sc.gc.ca
Men's Health Centre http://www.menshealthcentre.net
Gynecomastia. EBSCO DynaMed website. Available at: http://www.ebscohost.com/dynamed/what.php. Updated April 19, 2013. Accessed July 18, 2013.
Gynecomastia: when breasts form in males. American Academy of Family Physicians website. Available at: http://familydoctor.org/online/famdocen/home/men/general/080.html. Updated December 2010. Accessed July 18, 2013.
Johnson RE, Kermott CA, Murad MH. Gynecomastia: evaluation and current treatment options. Ther Clin Risk Manag . 2011;7:145-148.
Wollina U, Goldman A. Minimally invasive esthetic procedures of the male breast. J Cosmet Dermatol . 2011 Jun;10(2):150-155.
Revision Information
- Reviewer: Michael Woods, MD
- Review Date: 07/2013 -
- Update Date: 05/11/2013 -