Laravel:获取基本网址

Ini*_*igo 167 php base-url laravel

简单的问题,但答案似乎很难得到.在Codeigniter中,我可以加载url helper,然后就可以了

echo base_url();
Run Code Online (Sandbox Code Playgroud)

获取我网站的网址.Laravel有同等的东西吗?

han*_*ken 260

您可以使用URL facade来调用URL生成器

所以你可以这样做:

URL::to('/');
Run Code Online (Sandbox Code Playgroud)

您还可以使用应用程序容器:

$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');
Run Code Online (Sandbox Code Playgroud)

或者注入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('/');
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 尽管示例中可能出现这种情况,但这与Laravel的根路径有关,因此如果您安装在`/ something /'中,它将创建正确的URL. (3认同)

Ngu*_*Bồi 140

Laravel <5.2

echo url();
Run Code Online (Sandbox Code Playgroud)

Laravel> = 5.2

echo url('/');
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助

  • 请注意,这不再适用于5.2:https://github.com/laravel/framework/issues/11479您可以使用`url('/')`而不是 (20认同)
  • 您是否可以扩展此答案以包含解释而不仅仅是代码片段? (4认同)
  • 考试:我在本地有站点:http:// localhost/abc在Codeigniter中:echo base_url(); =>我得到http:// localhost/abc在Laravel中:echo url(); =>我也得到了http:// localhost/abc. (2认同)
  • `asset('/')` 对我来说似乎更好,因为它有尾随斜线,这在 base href 中是必需的。 (2认同)

Dre*_*ewT 45

对于Laravel 5,我通常使用:

<a href="{{ url('/path/uri') }}">Link Text</a>
Run Code Online (Sandbox Code Playgroud)

我的理解是,使用url()函数调用是相同FacadeURL::to()

  • 注意:如果您的网站是通过https提供的,您可以使用相同的`secure_url()`函数,这将产生一个https链接.在https站点上使用`url()`仍然会产生一个http链接. (4认同)

dan*_*son 13

要使它与非漂亮的URL一起使用,我必须这样做:

asset('/');
Run Code Online (Sandbox Code Playgroud)

  • 根据我的需要,这是最好的`<base href ="{{asset('/')}}"/>` (3认同)

Sob*_*ine 13

更新了2018年Laravel版本(5.7)文档以及更多url()函数及其用法.

问题:要在Laravel中获取网站的URL?

这是一个普遍的问题,所以我们可以分开它.

1.访问基本URL

// Get the base URL.
echo url('');

// Get the app URL from configuration which we set in .env file.
echo config('app.url'); 
Run Code Online (Sandbox Code Playgroud)

2.访问当前URL

// Get the current URL without the query string.
echo url()->current();

// Get the current URL including the query string.
echo url()->full();

// Get the full URL for the previous request.
echo url()->previous();
Run Code Online (Sandbox Code Playgroud)

3.命名路由的URL

// http://example.com/home
echo route('home');
Run Code Online (Sandbox Code Playgroud)

4.资产URL(公共)

// Get the URL to the assets, mostly the base url itself.
echo asset('');
Run Code Online (Sandbox Code Playgroud)

5.文件URL

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);
Run Code Online (Sandbox Code Playgroud)

也可以通过URL facade访问这些方法中的每一个:

use Illuminate\Support\Facades\URL;

echo URL::to(''); // Base URL
echo URL::current(); // Current URL
Run Code Online (Sandbox Code Playgroud)

如何使用刀片模板(视图)调用这些帮助程序功能.

// http://example.com/login
{{ url('/login') }}

// http://example.com/css/app.css
{{ asset('css/app.css') }}

// http://example.com/login
{{ route('login') }}

// usage

<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">

<!-- Login link -->
<a class="nav-link" href="{{ route('login') }}">Login</a>

<!-- Login Post URL -->
<form method="POST" action="{{ url('/login') }}">
Run Code Online (Sandbox Code Playgroud)


Aks*_*ale 12

Laravel提供了大量的帮助功能,您可以简单地满足您的要求

使用Laravel Helpers的url()函数

但是在Laravel 5.2的情况下你将不得不使用url('/')

是Laravel的所有其他帮助函数的列表


小智 12

这个:

echo url('/');
Run Code Online (Sandbox Code Playgroud)

还有这个:

echo asset('/');
Run Code Online (Sandbox Code Playgroud)

在我的情况下都显示了主页:)


X 4*_* IR 10

有多种方式:

  • request()->getSchemeAndHttpHost()
  • url('/')
  • asset('')
  • config('app.url')
  • $_SERVER['SERVER_NAME']


msa*_*i76 7

检查这个 -

<a href="{{url('/abc/xyz')}}">Go</a>
Run Code Online (Sandbox Code Playgroud)

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


Ken*_*yon 5

要获取您配置的应用程序网址,您可以使用:

Config::get('app.url')
Run Code Online (Sandbox Code Playgroud)

  • 好了, env('APP_URL') 可能是最好的选择。 (3认同)