Craft 3 Controller - Redirect with errors I cant get this to work.

I'm doing a post to a controller action. From that action I'm doing a lot of validations, db insert, file uploads etc.

Coming from Laravel Im used to is doing like this: (example with no real variables or methods. Just for visual presentation)

if(!$something-&gt;success){
  return redirect("controller-url")-&gt;withErrors([$model-&gt;errors]);
}
// Next steps...


From what I can read in the docs Craft recommend posting to the same page to handle errors and pass the model down to the view, but then doing a page refresh will do the same again so I dont like that.

My Controller is like this : 

Index (Renders index template)

public function actionIndex()
{
    $this-&gt;renderTemplate("plugin/settings");
}


Post

public function actionPost()
{
  if(!$model-&gt;validate()){
    Craft::$app-&gt;getSession()-&gt;setError($message);
    return $this-&gt;redirect("url-to-index-action");
  }
}


So the setError() works fine but I want to the pass all the errors from the model to the index action after a redirect and then down to the twig template. How?
In Yii2 there is no such a thing as "redirectWithErrors". Usually you have 2 scenarios


There are validation errors -> display the form again with those errors
Successful -> redirect


The first one doesn't require a redirect. You just return null in your controller and Yii2 will route the to the url specified via GETparameter.

So you can have a form like this. 

&lt;form method="post" action="myUrl"&gt;
    &lt;input type="hidden" name="action" value="mycontroller/save"&gt;
&lt;/form&gt;


Yii2 will do the following


Route to your controller and hit the save action
When you redirect or return a valid object of type yii\web\Response or a string that can be converted into that it will return the Response
When you don't return something it will route the request a second time with your get param myUrl, that can be treated as you routeWithErrors function because you set the errors Craft::$app-&gt;getUrlManager()-&gt;setRouteParams(['model' =&gt; $model]) and have then access to these parameters.


If you really dislike this, you could use return Craft::runAction('controller/action', $parameters); to run a controller action with certain values

Edit 
Usually you want to leave action="myUrl" blank and don't insert it. That way Yii2 will automatically reload the current route so you can dispaly your errors