Model validation and form validation are separate concepts, and you should have both in place.
Models should validate their own data to make sure they're not setting garbage into the database or being malformed. But a form is not necessarily tied to a model 1:1, and thus it needs its own validation to validate user input (e.g. conditional / dynamic fields, compared fields, the state of another model or object in the request etc...).
As RachidLaasri said, you can re-use some of the same validation rules, but you may also need custom form validation rules as well. You will also likely want to specify custom validation messages, which should not necessarily be defined in the model, as the wording can be specific to form's context.
Since I value consistency over efficiency, I ALWAYS validate with a form validator, even if the form is in fact a 1:1 map to a model. It's shitty when some forms rely on model validation, while others rely on form validation. So given that, I would always create a form validation class that has its own rules as applicable, but then also allows you to bind any number of models to validator that uses array_replace to merge each models' rules in with the rules explicitly defined for the form. That will at least save you from duplicating the rules.
Here's a Gist with a quick and dirty validation wrapper that combines the rules and messages from the form, and any relevant models. This will likely need modification - totally untested, but you get the idea.