action attribute in ActiveForm::begin(['action'=> doesn't work.

Hello I’m building a forum application with yii2 and I’m encountering a strange problem with the ActiveForm::begin()

 $form = ActiveForm::begin(['action' => 'forum-post/create', 'id' => 'forum_post', 'method' => 'post',]);

Doesn’t work as described in the Yii2 guide.

I have a model ForumPost,

I have the controller ForumPostController

I have the directory forum-post.

The ActiveForm is rendered within the index page in form-post/index.php to send the formdata which is rendered from _form.php, I have to send it to the controller action create. This doesn’t work because the action attribute in the renderd html-form is not processed, it stays ‘forum-post/create’.

<form id="forum_post" class="form-vertical" action="forum-post/create" method="post">

In short the route is not processed. I guess this is an error in the framework??

Documentation is missing but Yii conventions suggest that action should be an array to indicate that it isn’t an URL but a route:

 $form = ActiveForm::begin(['action' =>['forum-post/create'], 'id' => 'forum_post', 'method' => 'post',]);

Hello phtamas, thx for your reply, I encountered this same issue with the arrays on several places in yii2. It did the trick, many thx buddy.

It now converts to the route.

<form id="forum_post" class="form-vertical" action="/project/frontend/web/index.php?r=forum-post%2Fcreate" method="post">