问题很简单,但答案似乎很难得到。在Codeigniter中,我可以加载URL助手,然后简单地执行

echo base_url();

获取我网站的URL。在Laravel中也有类似的情况吗?


当前回答

您可以使用URL facade,它允许您调用URL生成器

所以你可以这样做:

URL::to('/');

你也可以使用应用程序容器:

$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');

或者注入UrlGenerator:

<?php
namespace Vendor\Your\Class\Namespace;

use Illuminate\Routing\UrlGenerator;

class Classname
{
    protected $url;

    public function __construct(UrlGenerator $url)
    {
        $this->url = $url;
    }

    public function methodName()
    {
        $this->url->to('/');
    }
}

其他回答

看看这个——

<a href="{{url('/abc/xyz')}}">Go</a>

这对我很有用,我希望对你也有用。

您可以按照以下方法使用facade或helper函数。

echo URL::to('/');
echo url();

Laravel使用Symfony组件进行请求,Laravel内部逻辑按 追随者。

namespace Symfony\Component\HttpFoundation;
/**
* {@inheritdoc}
*/
protected function prepareBaseUrl()
{
    $baseUrl = $this->server->get('SCRIPT_NAME');

    if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
        // assume mod_rewrite
        return rtrim(dirname($baseUrl), '/\\');
    }

    return $baseUrl;
}

我找到了另一种方法来获取基本url来显示环境变量APP_URL的值

env('APP_URL')

它将显示类似http://domains_your//yours_website的基本url。注意,它假定您已经在.env文件(存在于根文件夹中)中设置了环境变量。

这样的:

echo url('/');

这:

echo asset('/');

在我的情况下,两者都显示了主页url:)

为了让它与不漂亮的url一起工作,我必须做:

asset('/');