Laravel:获取基本网址

时间:2014-04-14 12:19:24

标签: php laravel base-url

简单的问题,但答案似乎很难得到。在Codeigniter中,我可以加载url helper,然后只需执行

echo base_url();

获取我网站的网址。在Laravel中有同等的东西吗?

18 个答案:

答案 0 :(得分:244)

您可以使用URL外观来调用URL generator

所以你可以这样做:

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('/');
    }
}

答案 1 :(得分:120)

Laravel&lt; 5.2

echo url();

Laravel&gt; = 5.2

echo url('/');

希望这有助于你

答案 2 :(得分:43)

对于Laravel 5,我通常使用:

<a href="{{ url('/path/uri') }}">Link Text</a>

我理解使用url()函数调用与Facade相同的URL::to()

答案 3 :(得分:12)

要使用非美丽网址,我必须这样做:

asset('/');

答案 4 :(得分:12)

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

使用Laravel Helpers的 url()功能

但是在 Laravel 5.2 的情况下,您必须使用网址(&#39; /&#39;)

here是Laravel

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

答案 5 :(得分:12)

此:

echo url('/');

而且:

echo asset('/');

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

答案 6 :(得分:6)

从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'); 

2。访问当前网址

// 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();

3。命名路线的网址

// http://example.com/home
echo route('home');

4。资产的网址(公共)

// Get the URL to the assets, mostly the base url itself.
echo asset('');

5。文件网址

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);

还可以通过URL外观访问以下每种方法:

use Illuminate\Support\Facades\URL;

echo URL::to(''); // Base URL
echo URL::current(); // Current URL

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

// 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') }}">

答案 7 :(得分:2)

您还可以使用URL :: to(&#39; /&#39;)在Laravel中显示图像。请参阅以下内容:

<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100"> 

假设您的图像存储在&#34; public / images&#34;。

答案 8 :(得分:2)

另一种可能性:{{ URL::route('index') }}

答案 9 :(得分:1)

我用过这个,它在Laravel 5.3.18中为我工作:

<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>

重要说明:仅当您已从网址中删除“公开”时,此功能才有效。为此,您可以查看this helpful tutorial

答案 10 :(得分:1)

顺便说一下,如果您的路线有如下名称:

Route::match(['get', 'post'], 'specialWay/edit', 'SpecialwayController@edit')->name('admin.spway.edit');

您可以使用route()这样的功能:

<form method="post" action="{{route('admin.spway.edit')}}" class="form form-horizontal" id="form-spway-edit">

其他有用的功能:

$uri = $request->path();
$url = $request->url();
$url = $request->fullUrl();
asset()
app_path();
// ...

https://github.com/laravel/framework/blob/5.4/src/Illuminate/Foundation/helpers.php

答案 11 :(得分:1)

要获取您配置的应用网址,您可以使用Config :: get(&#39; app.url&#39;)

答案 12 :(得分:0)

您可以按照以下步骤使用立面或辅助功能。

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;
}

答案 13 :(得分:0)

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

env('APP_URL')

,它将显示基本网址,例如http://domains_your//yours_website。请注意,它假定您已在.env文件(位于根文件夹中)中设置了环境变量。

答案 14 :(得分:0)

检查此-

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

这对我有用,我希望对您有用。

答案 15 :(得分:0)

您可以从laravel 5的Request中获取它

request()->getSchemeAndHttpHost();

答案 16 :(得分:0)

有多种方式:

  • request()->getSchemeAndHttpHost()

  • url('/')

  • asset('')

  • $_SERVER['SERVER_NAME']

答案 17 :(得分:-1)

我还使用了base_path()函数,它对我有用。