Find all real functions $f:\mathbb {R} \to \mathbb {R}$ satisfying the equation $f(x^2+y.f(x))=x.f(x+y)$

Find all real functions $f:\mathbb {R} \to \mathbb {R}$ satisfying the equation

$f(x^2+y.f(x))=x.f(x+y)$

My attempt –
Clearly $f(0)=0$

Putting $x^2=x,y.f(x)=1$, we have $f(x+1)=x.f(x+y)$.

Now putting $x=x-1$,we have $f(x)=(x-1)f(x-1+y)$

Putting $x=0$ ,we have $f(0)=-1.f(y-1)$ or $f(y-1)=0$(\since $f(0)=0$)

Finally putting $y=(x+1)$ gives us $f(x)=0$.

This is one of the required functions. But $f(x)=x$ also satisfies the equation.How to achieve this? One of my friends said that the answer $f(x)=x$ could be obtained by using Cauchy theorem but when I searched the internet, I could not find any theorem of Cauchy related to functions .Does any such theorem exist. If yes what is it and how can it be used to solve the functional equation. Is there a way similar to the method of getting the first solution to achieve the second one?

Solutions Collecting From Web of "Find all real functions $f:\mathbb {R} \to \mathbb {R}$ satisfying the equation $f(x^2+y.f(x))=x.f(x+y)$"

You proved that $f(0)=0$, we can continue from here

Suppose that there exist $k \neq 0$ such that $f(k)=0$.
Then plugging $x=k,y=y-k$ gives, $f(k^2) = f(k^2 + (y-k)f(k)) = kf(k+(y-k))=kf(y)$, which means that $f(x)$ is a constant function and so $f(x)=0$.

Now suppose that there exist no $k \neq 0$ such that $f(k)=0$.
Then plugging $x=x,y=-x$ gives $ f(x^2-xf(x)) = xf(0)= 0 $, which by assumption means $x^2=xf(x)$ or $f(x)=x$.

So we conclude that, possible functions are $f(x)=x,0 \forall x \in \mathbb{R} $

As you said $f(0)=0$
$$f(x^2+y.f(x))=x.f(x+y)$$
Take $y=0\implies f(x^2)=xf(x)$. So for $p>0$(p for positive,also I took this partition because $x^{1/2n}\mid n\in\mathbb N$ is defined only for $x>0$): $$f(p^2)=p(\sqrt pf(\sqrt p))=\lim_{n\to\infty}p^{\displaystyle \left(\sum_{k=0}^{n}\frac1{2^k}\right)}f\left(p^{1/n}\right)=p^2f(1)\\f(p)=kp\tag{$p>0$}$$
Now to find the function for $n<0$(n for negative):
$$f((-x)^2)=f(x^2)\implies -xf(-x)=xf(x)\implies f(x)+f(-x)=0$$
$$f(n)=-f(-n)=-(-kn)=kn\tag{$n<0$}$$
So $f(x)$ is odd and we can say that it is:
$$f(x)=kx$$