Mage :: getBaseUrl () vs Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB)

26

Apakah ada alasan untuk menggunakan Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)bukan Mage::getBaseUrl()? Saya telah melihat keduanya digunakan, dan mereka berdua mengembalikan hal yang sama. Apakah yang lebih lama berlebihan? Ia menggunakan 2 panggilan fungsi, juga.

Selain itu, saya melihat bahwa Mage_Core_Model_Store::URL_TYPE_WEBhanya mengembalikan string 'web'. Apa gunanya?

Buttle Butkus
sumber

Jawaban:

40

Pertama lihat getBaseUrl()diMage.php

 public static function getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)
    {
        return self::app()->getStore()->getBaseUrl($type, $secure);
    }

Secara sederhana kita dapat mengatakan:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)menunjukkan Magento Anda Site Urldari this url Magento is running it System.

Dan dengan kata lain, kita dapat mengatakan itu Mage::getBaseUrl() give the url which is linking your magento internal page urls That MVC page

Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB):

Nilai Ditetapkan pada : Dari Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Mage :: getBaseUrl ():

Nilai Ditetapkan pada : Dari Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Menampilkan Perbedaan Utama:

Setiap kali kami memungkinkan Use Web Server Rewrites = nodari admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) berikan nilai http://youdomain/

tetapi Mage::getBaseUrl()memberi nilai http://youdomain/index.php/yang benar-benar memberi nilai Mage_Core_Model_Store::URL_TYPE_LINK

ketika Anda hit http://youdomain/yang memanggil Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url Tapi times you can see all pagetautan Anda site is starting with http://youdomain/index.php/ itu artinya diambilMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Contoh:

Jika Anda telah membuat folder amit at Magento root dir and there you have put a file test.jsmaka Anda ingin memanggil file ini di magento home maka Anda dapat menggunakan kode ini

<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).'amit/test.js'; ?>

dan kemudian memberikan url

www.yourdomain/amit/test.js

Jika Anda hanya menggunakan Mage::getBaseUrl()yang memberi Anda www.yourdomain/index.php/amit/test.jsitu berarti test.js tidak dapat diakses (ketika rewite menonaktifkan)

Tetapi Anda telah membuat kontroler baru dan tindakan baru maka Anda dapat menggunakan

Mage::getBaseUrl().'yourmodulerouter/yourcontroller/youraction'

it show  url like `http://yourdomain/index.php/yourmodulerouter/yourcontroller/youraction`

atau memberi http://yourdomain/yourmodulerouter/yourcontroller/youraction(saat menulis ulang memungkinkan)

Amit Bera
sumber
Jadi Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)apakah akan bekerja lebih baik ketika kita memiliki penulisan ulang dihidupkan?
Buttle Butkus
no.Mage :: getBaseUrl (): selalu digunakan untuk magento pageliks
Amit Bera
Terima kasih telah membantu. Tapi Anda mengatakan itu Mage::getBaseUrl()memberi Anda tautan yang ada index.phpdi dalamnya. Mengapa saya ingin index.php tambahan itu jika saya tidak membutuhkannya?
Buttle Butkus
Jika saya mengirim jangan mengirim parameter apa pun pada fungsi getBaseUrl () maka ia mengirim jika params sebagai $ type = Mage_Core_Model_Store :: URL_TYPE_LINK, $ secure = null)
Amit Bera
mohon periksa magento ini Mage.php
Amit Bera