I'm new at Magento I created a new page to list some data that is coming from an API, and I used that a Block base on phtml template and I pass the data loaded from API to the block to list it. this code is working fine locally but when I deploy it to the server it crashes please help me.
here is my code
Constroller/Adminhtml/PickupRequest/Index.php
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->setActiveMenu(static::MENU_ID);
$resultPage->getConfig()->getTitle()->prepend(__('Pickup Requests'));
$data = array();
$block = $resultPage->getLayout()->getBlock('pickup_request_listing');
try {
$sessionClient = $this->authService->authenticate();
$data = $this->_pickupRequestClient->getPickupRequests($sessionClient);
$block->setData('pickupRequests', $data);
$resultPage->getLayout()->addBlock($block);
} catch (\Exception $e) {
$this->_logger->err($e->getMessage());
$this->_logger->err($e->getTraceAsString());
}
return $resultPage;
}
View/adminhtml/layout/companyshipping_pickuprequest_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<referenceBlock name="page.title">
<action method="setPageTitle">
<argument name="title" xsi:type="string">Demande de ramassage</argument>
</action>
</referenceBlock>
<body>
<referenceContainer name="content">
<block name="pickup_request_listing" class="Magento\Backend\Block\Template" template="Company_CompanyShipping::pickuprequest.phtml"/>
</referenceContainer>
</body>
</page>
View/adminhtml/templates/pickuprequests.phtml
use Magento\Framework\View\Element\Template;
/** @var Template $block */
?>
<?php
$count = 0;
$pickupRequests = $block->getData('pickupRequests');
?>
<div>
<table class="data-grid data-grid-draggable">
<thead>
<tr>
<th class="data-grid-th">Refrence</th>
<th class="data-grid-th">Customer</th>
<th class="data-grid-th">Package count</th>
<th class="data-grid-th">Created On</th>
<th class="data-grid-th">Picked up on</th>
<th class="data-grid-th">Status</th>
</tr>
</thead>
<tbody>
<?php
if (isset($pickupRequests) && $pickupRequests != null && count($pickupRequests) > 0) {
foreach ($pickupRequests as $pickupRequest) { ?>
<tr class="data-row <?= $count % 2 == 0 ? '_odd-row' : '' ?>">
<td>
<div class="data-grid-cell-content"><?= $pickupRequest["name"]; ?></div>
</td>
<td>
<div class="data-grid-cell-content"><?= $pickupRequest["customer"]; ?></div>
</td>
<td>
<div class="data-grid-cell-content"><?= $pickupRequest["count"]; ?></div>
</td>
<td>
<div
class="data-grid-cell-content"><?= date("d/m/Y", strtotime($pickupRequest["createdOn"])); ?></div>
</td>
<td>
<div
class="data-grid-cell-content"><?php
if (isset($pickupRequest["pickedUpAt"])) {
echo date("d/m/Y", strtotime($pickupRequest["pickedUpAt"]));
}
?></div>
</td>
<td>
<button class="<?= getStatusClass($pickupRequest["status"]); ?>"><?= getStatusLabel($pickupRequest["status"]); ?></button>
</td>
</tr>
<?php $count++; ?>
<?php }
} else { ?>
<tr class="data-row">
<td colspan="100">Aucun résultat trouvé..</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
Hello guys i found the problem, When i'm using windows it causes no problem cause windows is not key sensitive on the other hand the server is a linux machine that is key sensitive so when i'm using View/adminhtml/templates/pickuprequests.phtml with capital V it doesn't find the template called and it doesn't trigger any error.
all i had to do is change View to view and everything worked so well.