PetkoparaCrudGeneratorBundle icon indicating copy to clipboard operation
PetkoparaCrudGeneratorBundle copied to clipboard

Search Bundle example is not clear

Open devkbsc opened this issue 6 years ago • 0 comments

Hello, I have installed this search bundle. I created all the files which are necessary. But the example on the official documentation is not clear to me cause i am newbie to symfony.

here is my source code

Controller

namespace BlogBundle\Controller;

use BlogBundle\Entity\Article;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

/**
 * Description of SearchController
 *
 * @author admin
 */
class SearchController extends Controller {

    public function indexAction(Request $request) {
        $search = $request->get('search');
        $em = $this->getDoctrine()->getManager();
        $queryBuilder = $em->getRepository('BlogBundle:Post')->createQueryBuilder('e');
        $filterForm = $this->createForm('BlogBundle\Form\SearchFormType');

        // Bind values from the request
        $filterForm->handleRequest($request);

        if ($filterForm->isValid()) {
            // Build the query from the given form object
            $queryBuilder = $this->get('petkopara_multi_search.builder')->searchForm($queryBuilder, $filterForm->get('search'));
        }

        return $this->render('article/index.html.twig', array(
                    'filterForm' => $filterForm,
        ));
    }

}

Form Type


namespace BlogBundle\Form;

use BlogBundle\Entity\Article;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\Extension\Core\Type\TextType;

class ArticleSearchType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder->add('search', MultiSearchType::class, array(
            'class' => 'BlogBundle:Article'
        ));
    }

    public function getName() {
        return 'blog_article_search';
    }

}

View

<div class="col-md-12"  style="border-color:#0b90c4;border-style:solid;padding:25px;margin-bottom:25px;">
        {#{{ render(controller('BlogBundle:Article:list')) }}#}
        {{ form_start(filterForm) }}
        {{ form_rest(filterForm) }}
        {{ form_end(filterForm) }}
    </div>

Did i miss anything else?

devkbsc avatar Oct 09 '17 13:10 devkbsc