I have created admin grid and associated form. In that, If I add a new item the time and date is automatically saved. But the name of who is added the item and who is edited the item is also need to be save in DB.How to retrieve these things and dispaly it in Backend ? Please suggest me a solution ... Thanks in advance.
I have created below files to display it
xxx\HomeSlider\Block\Adminhtml\Edit\Tab\View\AdditionalInfo.php
<?php
namespace xxx\HomeSlider\Block\Adminhtml\Edit\Tab\View;
use Magento\Framework\Exception\NoSuchEntityException;
use xxx\HomeSlider\Model\Post;
class AdditionalInfo extends \Magento\Backend\Block\Template
{
/**
* Interval in minutes that shows how long customer will be marked 'Online'
* since his last activity. Used only if it's impossible to get such setting
* from configuration.
*/
const DEFAULT_ONLINE_MINUTES_INTERVAL = 15;
protected $dateTime;
protected $coreRegistry;
protected $authSession;
public function __construct(
\Magento\Backend\Block\Template\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Backend\Model\Auth\Session $authSession, array $data = []
)
{
$this->authSession = $authSession;
parent::__construct($context, $data);
}
public function getCurrentUser()
{
return $this->authSession->getUser();
}
}
Additionalinfo.phtml
<?php
$adminName = $block->getCurrentUser();
?>
<div class="fieldset-wrapper customer-information">
<div class="fieldset-wrapper-title">
<span class="title"><?= $block->escapeHtml(__('Additional Information')) ?></span>
</div>
<table class="admin__table-secondary">
<tbody>
<?= $block->getChildHtml() ?>
<tr>
<th><?= $block->escapeHtml(__('Created At:')) ?></th>
<td><?= $block->escapeHtml($adminName) ?></td>
</tr>
</tbody>
</table>
</div>
<?php
Controller file save.php
<?php
namespace OX\HomeSlider\Controller\Adminhtml\Post;
class Save extends \Magento\Backend\App\Action
{
public function __construct(
\Magento\Backend\App\Action\Context $context, \Magento\Backend\Model\View\Result\RedirectFactory $resultRedirectFactory
)
{
$this->resultRedirectFactory = $resultRedirectFactory;
parent::__construct($context);
}
public function execute()
{
$id = $this->getRequest()->getParam('id');
$postModel = $this->_objectManager->create('OX\HomeSlider\Model\Post');
if ($id) {
$postModel = $postModel->load($id);
}
$post = $this->getRequest()->getParam('general');
if (empty($post['id'])) {
$post['id'] = null;
}
if (isset($post['image'])) {
$post['image'] = $post['image'][0]['name'];
} else {
$post['image'] = null;
}
$postModel->setData($post);
$postModel->save();
return $this->resultRedirectFactory->create()->setPath('homeslider/post/index');
}
}
Controller for edit.php
<?php
namespace OX\HomeSlider\Controller\Adminhtml\Post;
class Edit extends \Magento\Backend\App\Action
{
protected $_resultPage;
protected $_resultPageFactory = false;
protected $_coreRegistry;
public function __construct(
\Magento\Backend\App\Action\Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory, \Magento\Framework\Registry $coreRegistry
)
{
parent::__construct($context);
$this->_resultPageFactory = $resultPageFactory;
$this->_coreRegistry = $coreRegistry;
}
public function execute()
{
$id = $this->getRequest()->getParam('id');
$post = $this->_objectManager->create('OX\HomeSlider\Model\Post');
if ($id) {
$post = $post->load($id);
if ($post->getId()) {
$this->_coreRegistry->register('homepageslider_post', $post);
}
}
$resultPage = $this->getResultPage();
$resultPage->getConfig()->getTitle()->prepend(__('Image Information'));
return $resultPage;
}
public function getResultPage()
{
if (is_null($this->_resultPage)) {
$this->_resultPage = $this->_resultPageFactory->create();
}
return $this->_resultPage;
}
}