Mage :: getBaseUrl () so với Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_weB)


26

Có một lý do để sử dụng Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)hơn là Mage::getBaseUrl()? Tôi đã thấy cả hai đang sử dụng, và cả hai đều trả lại cùng một thứ. Là một trong những dư thừa? Nó sử dụng 2 cuộc gọi chức năng là tốt.

Hơn nữa, tôi thấy rằng Mage_Core_Model_Store::URL_TYPE_WEBchỉ cần trả về chuỗi 'web'. Điểm của nó là gì?

Câu trả lời:


40

Đầu tiên nhìn getBaseUrl()vàoMage.php

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

Nói một cách đơn giản, chúng ta có thể nói:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)chỉ ra Magento của bạn Site Urltừ this url Magento is running it System.

Và từ khác, chúng ta có thể nói rằng 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):

Đặt giá trị tại : Từ Admin>System>Configuration>WebSite>Secure/Unsecure -> Base url

Pháp sư :: getBaseUrl ():

Đặt giá trị tại : Từ Admin>System>Configuration>WebSite>Secure/Unsecure -> Base Link url

Sự khác biệt chính hiển thị:

Bất cứ khi nào chúng tôi được kích hoạt Use Web Server Rewrites = notừ admin>system>Web>Search Engines Optimization Rewrites

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) đưa ra giá trị của http://youdomain/

nhưng Mage::getBaseUrl()đưa ra giá trị http://youdomain/index.php/thực sự cho giá trị của Mage_Core_Model_Store::URL_TYPE_LINK

Khi bạn hit http://youdomain/đó là Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) url cuộc gọi Nhưng times you can see all pageliên kết của bạn site is starting with http://youdomain/index.php/ có nghĩa là nó đã được thực hiệnMage::getBaseUrl()/ Mage::getBaseUrl($type = Mage_Core_Model_Store::URL_TYPE_LINK, $secure = null)

Thí dụ:

Nếu bạn đã tạo một thư mục amit at Magento root dir and there you have put a file test.jsthì bạn muốn gọi tệp này tại nhà magento thì bạn có thể sử dụng mã này

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

và nó cung cấp cho url

www.yourdomain/amit/test.js

Nếu bạn chỉ sử dụng Mage::getBaseUrl()mà cung cấp cho bạn www.yourdomain/index.php/amit/test.jsđiều đó có nghĩa là test.js không thể truy cập được (khi vô hiệu hóa lại)

Nhưng bạn đã tạo bộ điều khiển mới và hành động mới thì bạn có thể sử dụng

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

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

hoặc cho http://yourdomain/yourmodulerouter/yourcontroller/youraction(khi viết lại cho phép)


Vì vậy, Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB)sẽ làm việc tốt hơn khi chúng ta đã viết lại?
Butussy Butkus

no.Mage :: getBaseUrl (): luôn được sử dụng cho magento pageliks
Amit Bera

Cảm ơn đã giúp đỡ. Nhưng bạn nói rằng Mage::getBaseUrl()cung cấp cho bạn một liên kết có index.phptrong đó. Tại sao tôi muốn có thêm index.php nếu tôi không cần nó?
Butussy Butkus

Nếu tôi gửi không gửi bất kỳ tham số nào trên hàm getBaseUrl () thì nó sẽ gửi nếu params là $ type = Mage_Core_Model_Store :: URL_TYPE sắc, $ safe = null)
Amit Bera

vui lòng kiểm tra magento Mage.php này
Amit Bera
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.