TYPO3 6.2の拡張機能を開発したいと思います。TYPO3リポジトリエクストラベースにデータを追加
コントローラクラスでは、「fetchFeUsersAction」というアクションを作成しました。 このアクションは、モデルのextensionbuilderから作成されたテーブルのテーブルfe_users
から一連のデータをロードします。リポジトリの取得ユーザーに
関数は次のようになります。これは非常にうまく動作します
public function getFeUsers()
{
/** @var Query $q */
$q = $this->createQuery();
$q->statement('SELECT * from fe_users');
$data = $q->execute(true);
return $data;
}
。
は、しかし、今、私は、このアクションと私のモデルにテーブルfe_users
からの結果を格納したい:
public function fetchFeUsersAction()
{
$data = $this->adressRepo->getFeUsers();
foreach ($data as $feuser) {
/** @var Adresse $address */
$address = $this->objectManager->get(Adresse::class);
$q= $this->adressRepo->createQuery();
$q->matching(contains('email', $feuser['email']));
$contain= $q->execute();
if($contain==NULL){
$address->setEmail($feuser['email']);
$this->adressRepo->add($address);
}
}
$this->redirect('list');
}
私はメールアドレスは、すでに私のテーブルに格納されているかどうかを確認します。 メールアドレスが保存されていない場合は、モデルに追加する必要があります。 しかし、それは動作しません。空のテーブルでも。条件がなければ、それは非常にうまく動作します。
$ this-> objectManager-> get(\ TYPO3 \ CMS \ Extbase \ Persistence \ Generic \ PersistenceManager :: class) - > persistAll(); –
ありがとうポール! Danielの場合は、基本的なActionControllerを拡張したクラスの中で "新しい/正しい"方法を使用します。通常、拡張コントローラー。私の場合、私はそれを拡張していない別のクラスを持っています。 – HR123