For the tomato sauce, heat the olive oil in a large pan, add the onions and fry gently until softened.
Add the tomatoes, season with salt and freshly ground black pepper and stir in the basil. Reduce the heat and simmer gently for about 25 minutes, or until the tomatoes have broken down and the sauce is reduced. Set aside.
For the meatballs, place all the meatball ingredients, except the oil and flour, into a bowl and mix well. Using your hands, shape the mixture into walnut-sized balls.
Heat a generous amount of olive oil in a large frying pan. Dust the meatballs in flour, then fry in the hot oil until golden-brown on all sides. Do this in batches, depending on the size of your frying pan. Drain on kitchen paper and set aside.
Preheat the oven to 200C/400F/Gas 6.
For the lasagne, spread a little of the tomato sauce over the base of a large ovenproof dish.
Cover with a layer of lasagne sheets, then spoon over some more tomato sauce.
Sprinkle with parmesan, followed by some egg slices and a few meatballs. Dot over some ricotta and pieces of mozzarella.
Top with more sheets of pasta and repeat the layers with the remaining ingredients, finishing with tomato sauce, meatballs, eggs and both cheeses.
Cover the dish with foil and bake in the oven for about 30 minutes.
Remove the foil and cook for a further five minutes, or until the cheese has melted and the top is golden-brown. Serve immediately.