I am working on a custom module. I am getting array of attribute values in my custom controller and I want to pass these values in my template to list in a select dropdown. Please provide a solution -
Controller -
<?php
namespace Vendor\Module\Controller\Index;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_productCollectionFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
) {
$this->_productCollectionFactory = $productCollectionFactory;
parent::__construct($context);
}
public function execute()
{
$Urlparam = $this->getRequest()->getParam('make');
echo $Urlparam;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$collection = $this->_productCollectionFactory->create();
$collection->addAttributeToSelect('id');
$collection->addAttributeToSelect('model');
$collection->addAttributeToSelect('status');
$collection->addAttributeToFilter('status',1);
$collection->addAttributeToFilter('make',5711);
//$count =0;
$modelValues[] = "";
foreach ($collection as $product) {
$modelValue = $product->getAttributeText("model");;
if ((in_array($modelValue,$modelValues)) == false) {
$modelValues[] = $modelValue;
}
}
}
}
Block file -
<?php
namespace Vendor\Module\Block;
class Vendor extends \Magento\Framework\View\Element\Template
{
protected $_productCollectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
array $data = []
) {
$this->_productCollectionFactory = $productCollectionFactory;
parent::__construct($context, $data);
}
public function getProductCollection()
{
$collection = $this->_productCollectionFactory->create();
$collection->addAttributeToSelect('id');
$collection->addAttributeToSelect('make');
$collection->addAttributeToSelect('status');
$collection->addAttributeToFilter('status',1);
return $collection;
}
}
Template file -
<select class="select-model">
<option>Select Model</option>
</select>
I am new to this concept. Please provide a solution for how to show the array from the controller in phtml select option.