web-dev-qa-db-ja.com

Laravel:基本URLを入手

簡単な質問ですが、答えはなかなか得られません。 Codeigniterでは、URLヘルパーをロードしてから単純に実行できます

echo base_url();

私のサイトのURLを取得する。 Laravelにも同等のものはありますか?

154
Inigo

URLファサードを使用すると、 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('/');
    }
}
240
hannesvdvreken

Laravel <5.2

echo url();

Laravel> = 5.2

echo url('/');

これがお役に立てば幸いです

120

Laravel 5のために私は通常使用します:

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

私はurl()関数を使うことはURL::to()と同じFacadeを呼ぶことを理解しています

43
DrewT

この:

echo url('/');

この:

echo asset('/');

両方とも私の場合は自宅のURLを表示しました:)

12
GGadash

それをきれいでないURLで動作させるために私はしなければなりませんでした:

asset('/');
12
dan-klasson

Laravelはたくさんのヘルパー機能を提供し、あなたの要求に応じて簡単にできます

url() Laravelヘルパーの機能

しかし、 Laravel 5.2 の場合は、 url( '/') を使用する必要があります。

ここ はLaravelの他のすべてのヘルパー関数のリストです。

12
Akshay Khale

2018 Laravel release(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.現在の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();

3.名前付きルートのURL

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

4.資産へのURL(公開)

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

5.ファイルのURL

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') }}">
5
Sobin Augustine

Laravelで画像を表示するためにURL :: to( '/')を使用することもできます。下記を参照してください:

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

あなたの画像は "public/images"の下に保存されているとします。

他の可能性:{{ URL::route('index') }}

2
CptChaos

以下のようにファサードまたはヘルパー機能を使用できます。

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

以下のように、リクエストにSymfonyコンポーネント、Laravel内部ロジックを使用して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;
}
1
Paresh Barad

ところで、あなたのルートが以下のような名前を持っているなら:

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/help.php

1
闫鹏程

アプリのURLを取得するには、Config :: get( 'app.url')を使用します。

1
Kenyon

私はこれを使いました、そしてそれはLaravel 5.3.18で私のために働きました:

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

重要な注意:これはあなたがすでにあなたのURLから "public"を削除したときにのみ機能します。これを行うには、 この便利なチュートリアル をチェックしてください。

1
ITWitch

環境変数APP_URLの値を表示するためのベースURLを取得するための他の方法を見つけました

env('APP_URL')

これは http:// domains_your // yours_website のように基本URLを表示します。環境変数が.envファイル(ルートフォルダにあります)に設定されていることを前提としていることに注意してください。

0
Adeel