vendredi 24 avril 2015

Extbase Query Manager

Ich habe zum Test eine kleine Extension geschrieben und möchte ein kleines Formular einbinden, damit man wie bei einer Suchmaschine nach Begriffen suchen kann. Die Extension listet Filme auf einer Liste auf und wenn man auf den Titel auf der Liste klickt erscheinet eine Detail Ansicht.


Das einfache Suchformular:
HTML-Code:

<f:form action="list" additionalAttributes="{role:'form'}">
        <div>
            <f:form.textfield name="search" value="{search}" />
            <f:form.submit value="Search!" />
        </div>
</f:form>


Das Formular funktoniert. Leider versuche ich schon seit Stunden den Controller und das Repository anzupassen. Leider komm ich nicht weiter. Es müsste alles passen.

Das Suchen funktioniert nicht richtig. Beim Suchen wird nicht der gesuchte Title des Filmes angezeigt sondern es werden alle Filme der Liste angezeigt.


Die Repositor-Klasse:
PHP-Code:

<?php
namespace Vendor\Movies\Domain\Repository;

class 
MovieRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {

    public function 
findSearchForm($search) {
        
$query $this->createQuery();
        
$query->matching(
            
$query->like('title','%'.$search.'%')
        );
        return 
$query->execute();
    }
}


Die listAction des Controllers
PHP-Code:

/**
 * list action
 *
 * @param string $search
 */
public function listAction($search='') {
    
$this->view->assign('movies'$this->movieRepository->findSearchForm($search));
    
$this->view->assign('search',$search);



Was mache ich falsch?
Hat jemand bitte eine Idee oder eine Lösung?

Ich hab alle Caches im BE geleert, alle Temp Dateien gelöscht und alle Cache Tabellen im phpmyadmin geleert. Also daran kann es nicht liegen.


Extbase Query Manager

Aucun commentaire:

Enregistrer un commentaire