I dislike the no-pull harnesses because I think they are counter intuitive - my dogs, and many others, find leaning into a harness and pulling very rewarding and easier than pulling on a collar (think of what you put on a Siberian husky to enable them to pull a sled long distances in comfort...). I've known dogs who just pulled through the discomfort of the Lupi type harnesses and ripped out all the hair in their armpits by leaning into the rope.
I also don't like headcollars for long term use - fine to help break the habit on a really established puller, perhaps, but they can be pretty aversive tools and I see so many dogs crabbing along with the strap up in their eyes. The Dogmatic ones appear to be the best fit if you do want to go down that route.
Really though there is no tool that will cure pulling, only mask the problem (and maybe only temporarily). If he can do it in the garden, he can do it outside, you just need to generalise the behaviour to lots of different scenarios.
If he's not in a regular weekly training class that's the first port of call, a second pair of hands and eyes is invaluable as is the opportunity to practice around other dogs and people. I often think that so many niggly issues like this would be solved so quickly (or not have occurred in the first place!) if people went to a good, fun training class every week (forgive me if you already do but so many don't).
Secondly, pick a method and stick with it - I like the silky leash method or Kikopup's Youtube videos, all easy, positive and just requiring a flat collar, leash and treats. Be consistent, be upbeat, work on getting and keeping your dog's attention no matter where you are. Make yourself the most exciting thing in the world (cheese/chicken/sausages, high pitched 'puppp-eeeee, PUP PUP PUP, look at meeeee, eeeeeee!', scattering cheese in your wake
), reward lavishly for a slack lead. Spaniels are smart, he will get it very quickly if you're consistent. :)