extbaseを使用して何かを作成しようとしていますが、表示されるエラーメッセージはあまり役に立ちません。blog_example拡張機能をガイドとして使用しました。(おそらく)重要な違いは次のとおりです。RESTを介して外部サーバブに接続するカスタムドメインリポジトリを作成したいので、データベーステーブルがありません。
実際のエラーメッセージ(例外メッセージとしてではなく、プラグインの上に表示されます):
Tx_MyExt_Controller_SubscriptionController-> createAction()を呼び出そうとしたときにエラーが発生しました
Classes / Controller / SubscriptionController:
重要な部分に分解されます。
class Tx_MyExt_Controller_SubscriptionController extends Tx_Extbase_MVC_Controller_ActionController
{
/**
* @var Tx_MyExt_Domain_Repository_SubscriberRepository
*/
protected $subscriberRepository;
/**
* @return void
*/
public function initializeAction()
{
$this->subscriberRepository = t3lib_div::makeInstance('Tx_MyExt_Domain_Repository_SubscriberRepository');
}
/**
* @param Tx_MyExt_Domain_Model_Subscriber $subscriber
* @dontvalidate $subscriber
* @return string The rendered view
*/
public function newAction(Tx_MyExt_Domain_Model_Subscriber $subscriber = null)
{
$this->view->assign('subscriber', $subscriber);
}
/**
* @param Tx_MyExt_Domain_Model_Subscriber $subscriber
* @return string The rendered view
*/
public function createAction(Tx_MyExt_Domain_Model_Subscriber $subscriber)
{ }
}
クラス/ドメイン/モデル/サブスクライバー
class Tx_MyExt_Domain_Model_Subscriber extends Tx_Extbase_DomainObject_AbstractEntity
{
/**
* @var string
* @dontvalidate
*/
protected $email = '';
/**
* @param string $email
* @return void
*/
public function setEmail($email)
{
$this->email = $email;
}
/**
* @return string
*/
public function getEmail()
{
return $this->email;
}
}
リソース/プライベート/テンプレート/サブスクリプション/新規
<f:form action="create" controller="Subscription" objectName="Subscriber" object="{subscriber}" method="post">
<f:form.textfield property="email"></f:form.textfield>
<f:form.submit value="submit"></f:form.submit>
</f:form>
事実
- 追加
$subscriber = null
するとメッセージが削除されます。しかし$subscriber
、null
それでは - A
var_dump($this->request->getArguments());
はフォームのフィールドを表示します - インデックスアクションがあり、それはで定義された最初のアクションでもあります
ext_localconf.php
私が見つけたヒントや解決策は私には役立たないので、誰かが私を正しい方向に導いてくれることを願っています。