Простой вопрос, но ответ найти довольно сложно. В Codeigniter я мог загрузить вспомогательный URL-адрес, а затем просто выполнить
echo base_url();
чтобы получить URL-адрес моего сайта. Есть ли эквивалент в Laravel?
Простой вопрос, но ответ найти довольно сложно. В Codeigniter я мог загрузить вспомогательный URL-адрес, а затем просто выполнить
echo base_url();
чтобы получить URL-адрес моего сайта. Есть ли эквивалент в Laravel?
Вы можете использовать фасад 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('/');
}
}
/something/
, он сделает правильный URL.
- person ceejayoz; 14.04.2014
{{URL::to('/my-page.html')}}
на просмотре и echo URL::to('/my-page.html');
на коде
- person deFreitas; 01.04.2018
<a class="button is-primary" href="<?= URL::to('/'); ?>/atencion/reporte" target="_blank">
, спасибо!
- person joelmez4; 17.12.2018
Laravel ‹5.2
echo url();
Laravel> = 5.2
echo url('/');
Надеюсь, это поможет тебе
url('/')
- person 4lun; 23.12.2015
asset('/')
кажется мне лучше, потому что у него есть завершающий слэш, который необходим в базовом href.
- person vintproykt; 09.04.2019
Для Laravel 5 я обычно использую:
<a href="{{ url('/path/uri') }}">Link Text</a>
Я понимаю, что использование функции url()
вызывает тот же Facade
, что и URL::to()
secure_url()
таким же образом, и это создаст ссылку https. Использование url()
на сайте https по-прежнему приведет к созданию ссылки http.
- person DrewT; 15.12.2016
url()
генерирует ссылку http или https в зависимости от протокола запроса. С другой стороны secure_url()
не существует. Изменилось ли это и в Laravel 5.4?
- person Andreas Linnert; 18.02.2017
secure_url()
доступна здесь: laravel.com/docs/5.4/helpers#method-secure-url
- person DrewT; 20.02.2017
Обновления документации по версии Laravel 2018 (5.7) с некоторыми дополнительными функциями url () и их использованием.
Вопрос: Чтобы получить URL-адрес сайта в Laravel?
Это своего рода общий вопрос, поэтому мы можем его разделить.
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') }}">
Чтобы заставить его работать с некрасивыми URL-адресами, мне пришлось сделать:
asset('/');
<base href="{{ asset('/') }}" />
- person rneves; 27.10.2015
<base href="..."/>
из-за завершающей косой черты
- person vintproykt; 09.04.2019
Этот:
echo url('/');
И это:
echo asset('/');
в моем случае оба отображали домашний URL :)
Laravel предоставляет множество вспомогательных функций, и для ваших требований вы можете просто
используйте функцию url () помощников Laravel
но в случае Laravel 5.2 вам придется использовать url ('/')
здесь - это список всех других вспомогательных функций Laravel.
url('/css/style.css')
- person Akshay Khale; 06.05.2016
Чтобы просто получить URL-адрес приложения, который вы настроили, вы можете использовать:
Config::get('app.url')
app.url
похоже, что это запасной вариант
- person Wallace Maxters; 24.08.2016
Другая возможность: {{ URL::route('index') }}
Вы также можете использовать URL :: to ('/') для отображения изображения в Laravel. См. Ниже:
<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100">
Предположим, что ваше изображение хранится в папке «public / images».
Я использовал это, и это сработало для меня в Laravel 5.3.18:
<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>
ВАЖНОЕ ПРИМЕЧАНИЕ. Это будет работать только в том случае, если вы уже удалили «общедоступный» из своего URL-адреса. Для этого вы можете ознакомиться с этим полезным руководством.
Кстати, если у вашего маршрута есть название вроде:
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
Вы можете использовать фасады или вспомогательную функцию, как показано ниже.
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;
}
Проверь это -
<a href="{{url('/abc/xyz')}}">Go</a>
Это работает для меня, и я надеюсь, что это сработает для вас.
Я нашел другой способ просто получить базовый URL-адрес для отображения значения переменной среды APP_URL
env('APP_URL')
который отобразит базовый URL-адрес, например http://domains_your//yours_website. будьте осторожны, предполагается, что вы установили переменную среды в файле .env (который находится в корневой папке).
вы можете получить его из запроса на laravel 5
request()->getSchemeAndHttpHost();
Есть несколько способов:
request()->getSchemeAndHttpHost()
url('/')
asset('')
$_SERVER['SERVER_NAME']
Я также использовал функцию base_path()
, и она у меня сработала.