- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello sorry for my noobisme promise i almost finish.
so i have mi controller
<?php namespace Mymodule\AdminPage\Controller\Adminhtml\Nettoyage; class Index extends \Magento\Backend\App\Action { /** * @var \Magento\Framework\View\Result\PageFactory */ protected $resultPageFactory; /* * Constructor * * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory ) { parent::__construct($context); $this->resultPageFactory = $resultPageFactory; } public function execute() {
// i tested these line of code and they worked so i keep them just in case
/*$contact = $this->_objectManager->create('Mymodule\AdminPage\Model\Contact'); $data =[]; $data['toreplace']="test1"; $data['replaceby']="test2"; $data['id']=2; $contact->setData($data); $contact->save(); $data = $this->_objectManager->create('Mymodule\AdminPage\Model\Contact')->getCollection(); foreach ($data as $d ) { echo $d->getToreplace(); echo $d->getReplaceby(); }*/ return $resultPage = $this->resultPageFactory->create(); } } ?>
my block
<?php namespace Mymodule\AdminPage\Block\Adminhtml; use Magento\Backend\Block\Template; class Contactslist extends \Magento\Backend\Block\Template { public function mycustom(){ echo "test"; } }
I have to put some function in my controller who are supposed to depend from my class. The most important function is the function getAll() but even if i can interact with my database in my controller it seems i can't seems my block
here is the function (from Prestashop)
public static function getAll() { return Db::getInstance()->executeS('SELECT * FROM "my table"'); }
//so i tried every test i can to interact with my database but i can't
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Issue was in your block file,
Original Class is
\Mymodule\AdminPage\Model\ContactFactory $contactFactory,
You have kept
\Mymodule\AdminPage\Model\Contact $contact,
So you have to keep Factory Object of your Model Class.
After Apply ModelFactory You must delete var/generation folder.
Magento 2 Blogs/Tutorial
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
in fact i'm trying to follow the tutorial but in the admin side so my Block should look like that but it gave me an error
<?php namespace Mymodule\AdminPage\Block\Adminhtml; use Magento\Backend\Block\Template; class Contactslist extends \Magento\Backend\Block\Template { public function __construct( \Magento\Backend\App\Action\Context $context, \Mymodule\AdminPage\Model\Contact $contact, \Magento\Framework\App\ResourceConnection $resource, array $data = [] ) { $this->_contact = $contact; $this->_resource = $resource; parent::__construct( $context, $data ); } public function mycustom(){ echo "test"; } }
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
please check below tutorial for get data from DB.
http://www.mage-world.com/blog/how-to-use-model-and-collection-in-magento-2.html
Problem solved? Click Kudos & Accept as Solution!
Sunil Patel
Magento 2 Certified Professional Developer & Frontend Developer
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
i tried but i have an error like:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: 1048031972430
<?php namespace Mymodule\AdminPage\Controller\Adminhtml\Nettoyage; class Index extends \Magento\Backend\App\Action { /** * @var \Magento\Framework\View\Result\PageFactory */ protected $resultPageFactory; protected $_modelContactFactory; /* * Constructor * * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory, \Mymodule\AdminPage\Model\ContactFactory $modelContactFactory ) { parent::__construct($context); $this->resultPageFactory = $resultPageFactory; $this->_modelContactFactory = $modelContactFactory; } public function execute() { /*$contact = $this->_objectManager->create('Mymodule\AdminPage\Model\Contact'); $data =[]; $data['toreplace']="test1"; $data['replaceby']="test2"; $data['id']=2; $contact->setData($data); $contact->save(); $data = $this->_objectManager->create('Mymodule\AdminPage\Model\Contact')->getCollection(); foreach ($data as $d ) { echo $d->getToreplace(); echo $d->getReplaceby(); }*/ return $resultPage = $this->resultPageFactory->create(); } } ?>
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
@Antoine553, are you looking for getAll() method in your Block class? Or You want Model in your controller file.
Thanks.
Magento 2 Blogs/Tutorial
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
I'm trying to make the function getAll() in my block so my other function in my controller can use it
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
<?php namespace Mymodule\AdminPage\Block\Adminhtml; use Magento\Backend\Block\Template; class Contactslist extends Template { public function __construct( \Magento\Backend\App\Action\Context $context, \Mymodule\AdminPage\Model\ContactFactory $contactFactory, array $data = [] ) { $this->contactFactory = $contactFactory; parent::__construct( $context, $data ); } public function mycustom(){ echo "test";
$data = array(); $model = $this->contactFactory->create(); $data['toreplace']="test1"; $data['replaceby']="test2"; $data['id']=2; $model->setData($data); try { $model->save(); }catch (\Exception $e) { return $e->getMessage(); } $newData = $model->getCollection(); foreach ($newData as $d ) { echo $d->getToreplace(); echo $d->getReplaceby(); } } }
Try with above code in your Block file and remove var/generation folder.
Magento 2 Blogs/Tutorial
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
After trying that
<?php namespace Mymodule\AdminPage\Block\Adminhtml; use Magento\Backend\Block\Template; class Contactslist extends \Magento\Backend\Block\Template { public function __construct( \Magento\Backend\App\Action\Context $context, \Mymodule\AdminPage\Model\ContactFactory $contactFactory, array $data = [] ) { $this->contactFactory = $contactFactory; parent::__construct( $context, $data ); } public function mycustom(){ echo "test"; } }
i have an error :
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: 403320463966
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
please show your error log from var/report without error i cant say why you have display error.
Update
Based on your report issue on controller file,
So can you please share your code which you have tried in your module.
Thanks.
Magento 2 Blogs/Tutorial
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Select All in Block for Controller
a:4:{i:0;s:293:"Warning: include(/home/mademonstration/public_html/newmagento3/var/generation/Mymodule/AdminPage/Controller/Adminhtml/Nettoyage/index/Interceptor.php): failed to open stream: No such file or directory in /home/mademonstration/public_html/newmagento3/vendor/composer/ClassLoader.php on line 412";i:1;s:4027:"#0 /home/mademonstration/public_html/newmagento3/vendor/composer/ClassLoader.php(412): Magento\Framework\App\ErrorHandler->handler(2, 'include(/home/m...', '/home/mademonst...', 412, Array)
#1 /home/mademonstration/public_html/newmagento3/vendor/composer/ClassLoader.php(412): Composer\Autoload\includeFile()
#2 /home/mademonstration/public_html/newmagento3/vendor/composer/ClassLoader.php(301): Composer\Autoload\includeFile('/home/mademonst...')
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass('Mymodule\\AdminP...')
#4 [internal function]: spl_autoload_call('Mymodule\\AdminP...')
#5 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Mymodule\\AdminP...')
#6 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Mymodule\\AdminP...')
#7 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(71): Magento\Framework\ObjectManager\Definition\Runtime->getParameters('Mymodule\\AdminP...')
#8 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/ObjectManager/ObjectManager.php(57): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Mymodule\\AdminP...', Array)
#9 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/ActionFactory.php(40): Magento\Framework\ObjectManager\ObjectManager->create('Mymodule\\AdminP...')
#10 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/Router/Base.php(300): Magento\Framework\App\ActionFactory->create('Mymodule\\AdminP...')
#11 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/Router/Base.php(161): Magento\Framework\App\Router\Base->matchAction(Object(Magento\Framework\App\Request\Http), Array)
#12 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/FrontController.php(50): Magento\Framework\App\Router\Base->match(Object(Magento\Framework\App\Request\Http))
#13 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#14 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#15 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#16 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#17 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#18 /home/mademonstration/public_html/newmagento3/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#19 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#20 /home/mademonstration/public_html/newmagento3/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#21 /home/mademonstration/public_html/newmagento3/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#22 {main}";s:3:"url";s:121:"/newmagento3/admin_1k6h0m/adminpage/nettoyage/index/key/1b263dc66622a22c88b26b0b6a96a5f0fdda5e7d9641fbd6ea451cfe1601c49a/";s:11:"script_name";s:22:"/newmagento3/index.php";}