Terima kasih kepada Khoa untuk penjelasannya yang ingin saya capai adalah dalam formulir admin saya, saya memanggil url eksternal dengan ajax. Saya menggunakan jalur statis sehingga saya menginginkannya secara dinamis. Jadi, inilah yang telah saya lakukan.
File XML Layout Saya
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<uiComponent name="namespace_modulename_form"/>
<block class="Namespace\Modulename\Block\Adminhtml\Edit" name="edit" template="Namespace_Modulename::edit.phtml" />
</referenceContainer>
</body>
</page>
Layout Phtml File Saya mendefinisikan baseUrl.
<script>
require([
'mage/url'
], function(url) {
return url.setBaseUrl('<?php /* @escapeNotVerified */ echo $block->getAdminBaseUrl();?>');
})
</script>
File blok saya yang mengembalikan url basis
<?php
namespace Namespcae\Modulename\Block\Adminhtml;
class Edit extends \Magento\Framework\View\Element\Template
{
protected $_configReader;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Framework\App\DeploymentConfig\Reader $configReader
) {
$this->_configReader = $configReader;
parent::__construct($context);
}
public function getAdminBaseUrl(){
$config = $this->_configReader->load();
$adminSuffix = $config['backend']['frontName'];
return $this->getBaseUrl() . $adminSuffix . '/';
}
}
Sekarang dalam file js saya, saya dapat menggunakannya sebagai.
define([
'Magento_Ui/js/form/element/abstract',
'mage/url'
], function (Abstract, url) {
'use strict';
return Abstract.extend({
url.build('namespace_module/controllername/action/');
});
});
Hal terpenting yang perlu kita ketahui: Kita perlu mengatur url dasar untuk
url.build('<Modulename>/<controllername>/<action>/')
:lib / web / mage / url.js
Pada dasarnya, ada dua tempat untuk mengatur url dasar:
vendor/magento/module-checkout/view/frontend/templates/onepage.phtml
vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml
Jadi, di admin Anda, Anda harus mengatur url basis admin.
sumber