2016-09-15 6 views
0

phtmlテンプレートファイルでcmsページのリストを取得する必要があります。コードの下magento2.1でcmsページのリストを取得

$results = Mage::getModel('cms/page')->getCollection() 
    ->addFieldToFilter(array(
     array('field'=> 'title','like' => "%{$search}%"), 
     array('field'=> 'content','like' => "%{$search}%"), 
    )) 
    ->addFieldToFilter('is_searchable', 1); 
  1. はmagento2.1におけるCMSのページを取得する方法

  2. は、CMSのページにカスタムフィールドを追加する必要がありますMagentoの1.9倍のバージョンで使用されます

答えて

0

私はこれがあなたのために役立つことを願っています

あなたのクラスのコンストラクタ

protected $pageCollectionFactory; 

public function __construct(
    .... 
    \Magento\Cms\Model\ResourceModel\Page\CollectionFactory $pageCollectionFactory, 
    ... 
) { 
    .... 
    $this->pageCollectionFactory = $pageCollectionFactory; 
    .... 
} 

から

namespace Creare\DynamicSitemap\Block; 
class Dynamicsitemap extends \Magento\Framework\View\Element\Template 
{ 
    protected $_storeManager; 

public function __construct(
    \Magento\Backend\Block\Template\Context $context, 
    \Magento\Cms\Model\PageFactory $pageFactory, 
    \Magento\Store\Model\StoreManagerInterface $storeManager,   
    array $data = [] 
) 
{ 
    $this->pageFactory = $pageFactory;   
    $this->_storeManager = $storeManager;   
    parent::__construct($context, $data); 
} 

public function getCreareCMSPages(){ 
    $this->getStoreId(); // current store id 

    $page = $this->pageFactory->create(); 
    foreach($page->getCollection() as $item) 
    { 
     echo "page id : ".$item->getId() . ':: page name title : ' . $item->getTitle().'<br/>'; 
    } 
    die(); 
    $page = $this->pageFactory->create()->load(1); 
    var_dump($page->getData()); 
} 
} 
0

追加します。これは、次に、あなたのクラスのいずれかの方法でこれを使用することができます。

$collection = $this->pageCollectionFactory->create(); 
$collection->addFieldToFilter([ 
     ['field'=> 'title','like' => "%{$search}%"], 
     ['field'=> 'content','like' => "%{$search}%", 
    ]) 
    ->addFieldToFilter('is_searchable', 1); 
関連する問題