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?

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)


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.