Important

Okay
  Public Ticket #1301547
Like operator search
Closed

Comments

  • Harinarayanan started the conversation

    Hello Team,

    I will be able to get the seller data by using this code:
    $objectManager->create ( 'Lof\MarketPlace\Model\ResourceModel\Seller\Collection' )->load();

    But How can I apply filter with LIKE operator in this query. (addStoreFilter and addStoreFilter are not working in the LIKE case). Please let me know how to apply LIKE and OR operators here.

    Eg:

    this code returns empty array  but there is entry in back end

    $seller        = $objectManager->create ( 'Lof\MarketPlace\Model\ResourceModel\Seller\Collection' )
                ->addFilter('name', ['like' => '%hari%'])
                  
                ->load();
      $aData         = $seller->getData();


    Thanks,

  •  1,319
    Land of replied

    Hi

    Please use

    $seller = $objectManager->create ( 'Lof\MarketPlace\Model\ResourceModel\Seller\Collection' )->load();
    $needle = 'hari';
    $seller->addAttributeToFilter('name', array(    array('like' => '% '.$needle.' %'), //spaces on each side    array('like' => '% '.$needle), //space before and ends with $needle    array('like' => $needle.' %')

    Thanks

  • Harinarayanan replied

    Hi Guys,

    I'm getting this error  "Call to undefined method Lof\MarketPlace\Model\ResourceModel\Seller\Collection::addAttributeToFilter()"  when using  your solution. 

    $seller = $objectManager->create ( 'Lof\MarketPlace\Model\ResourceModel\Seller\Collection' )->load();
    $needle = 'hari';
    $seller->addAttributeToFilter('name', array( array('like' => '% '.$needle.' %')));


    Note : we are using your latest version.

    Kindly give us the solution.


    Thanks

  •  1,319
    Land of replied

    Hi

    Please try 

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance ();
      $seller        = $objectManager->create ( 'Lof\MarketPlace\Model\ResourceModel\Seller\Collection' )->load();
      $needle = 'hari';
    $seller->getSelect()->where('name LIKE "%' . addslashes($needle) . '%"');
    echo '<pre>';
    print_r(($seller->getData()));
    echo '</pre>';
    die('test');


  • Harinarayanan replied

    That works. Many Thanks :)