I made a plugin which allows frontend users to write news articles. This works fine on the Mac locally. However the New action gives a wrong casing in the __referrer of the form, resulting on the Linux server (which is sensitive for casing) in:
Class Pen\Pennews\Controller\newsController does not exist. Reflection failed.
My controller
class NewsController extends NewsBaseController
...
/**
* New action
*
* @return void
*/
public function newAction()
{
$feUserUid = $GLOBALS['TSFE']->fe_user->user['uid'];
/** @var User $user */
$user = $this->frontendUserRepository->findByUid($feUserUid);
$this->view->assignMultiple([
'user' => $user
]);
}
The form
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="Default"/>
<f:section name="content">
<f:form action="create" name="newNews" controller="News" object="{newNews}">
<label for="pennews-title" class="pennews-title">Titel</label>
<f:form.textfield property="title" id="pennews-title" placeholder="Onderwep" required="required"/>
<label for="pennews-teaser" class="pennews-teaser">Teaser</label>
<f:form.textarea id="pennews-teaser" class="pennews-teaser-newPost" name="teaser" rows="3" placeholder="Korte teaser - optioneel"/>
<label for="pennews-bodytext" class="pennews-bodytext">Content</label>
<f:form.textarea id="pennews-bodytext" class="pennews-bodytext-newPost pen-form-textarea" name="bodytext" placeholder="Bericht"/>
<div class="pen-button pennews-new-button text-align-right">
<button class="button pennews-submit-news icon-left" type="submit"><i class="fas fa-pen-square"></i>Maak nieuw bericht</button>
</div>
</f:form>
</f:section>
</html>
Part of the source of the form (taken from local dev) :
<form name="newNews"
action="/vlaggensite?tx_pennews_entry%5Baction%5D=create&tx_pennews_entry%5Bcontroller%5D=News&cHash=4cc2809be1ea9f2f2d3e07a8e396981f"
method="post">
<div>
<input type="hidden" name="tx_pennews_entry[__referrer][@extension]" value="Pennews"/>
<input type="hidden" name="tx_pennews_entry[__referrer][@vendor]" value="Pen"/>
<input type="hidden" name="tx_pennews_entry[__referrer][@controller]" value="news"/>
<input type="hidden" name="tx_pennews_entry[__referrer][@action]" value="new"/>
<input type="hidden" name="tx_pennews_entry[__referrer][arguments]"
value="YTowOnt9dd9a70668d7db0e58fe5097a80fa26ab79028541"/>
<input type="hidden" name="tx_pennews_entry[__referrer][@request]"
value="a:4:{s:10:"@extension";s:7:"Pennews";s:11:"@controller";s:4:"news";s:7:"@action";s:3:"new";s:7:"@vendor";s:3:"Pen";}316417f03bf11f3d860053d7f0c1286795c3db22"/>
<input type="hidden" name="tx_pennews_entry[__trustedProperties]"
value="a:3:{s:7:"newNews";a:1:{s:5:"title";i:1;}s:6:"teaser";i:1;s:8:"bodytext";i:1;}b6e10b48e7d3acab8926ba3318ce3ce1fed6ea2d"/>
</div>
As can be visible in the action, the controller is there News with a capital. However in the refererer the controller has the value "news" - lowercase. What could cause this or how can I fix it with a capital as first letter?
Solved. On ext_localconf.php I had the controllername lowercase.