Risposte:
È possibile utilizzare la facciata dell'URL che consente di effettuare chiamate al generatore di URL
Quindi puoi fare:
URL::to('/');
È inoltre possibile utilizzare il contenitore dell'applicazione:
$app->make('url')->to('/');
$app['url']->to('/');
App::make('url')->to('/');
O iniettare 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('/');
}
}
{{URL::to('/my-page.html')}}
a vista e echo URL::to('/my-page.html');
al codice
<a class="button is-primary" href="<?= URL::to('/'); ?>/atencion/reporte" target="_blank">
grazie!
Laravel <5.2
echo url();
Laravel> = 5.2
echo url('/');
Spero che questo ti aiuti
url('/')
invece
asset('/')
mi sembra migliore perché ha una barra finale che è necessaria in base href.
Per Laravel 5 normalmente utilizzo:
<a href="{{ url('/path/uri') }}">Link Text</a>
Sono consapevole che l'utilizzo della url()
funzione sta chiamando lo stesso Facade
diURL::to()
secure_url()
funzione allo stesso modo e questo produrrà un collegamento HTTPS. L'utilizzo url()
su un sito https produrrà comunque un collegamento http.
url()
generato un collegamento http o https in base al protocollo della richiesta. D'altra parte secure_url()
non esiste. Questo cambiamento è cambiato anche in Laravel 5.4?
secure_url()
è disponibile qui: laravel.com/docs/5.4/helpers#method-secure-url
Aggiornamenti dalla documentazione della versione Laravel (5.7) del 2018 con alcune altre funzioni url () e relativo utilizzo.
Domanda: per ottenere l'URL del sito in Laravel?
Questa è una specie di domanda generale, quindi possiamo dividerla.
1. Accesso all'URL di base
// Get the base URL.
echo url('');
// Get the app URL from configuration which we set in .env file.
echo config('app.url');
2. Accesso all'URL corrente
// 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 per percorsi denominati
// http://example.com/home
echo route('home');
4. URL delle risorse (pubblici)
// Get the URL to the assets, mostly the base url itself.
echo asset('');
5. URL dei file
use Illuminate\Support\Facades\Storage;
$url = Storage::url('file.jpg'); // stored in /storage/app/public
echo url($url);
È possibile accedere a ciascuno di questi metodi tramite la facciata dell'URL:
use Illuminate\Support\Facades\URL;
echo URL::to(''); // Base URL
echo URL::current(); // Current URL
Come chiamare queste funzioni di supporto dal modello di lama (viste) con l'uso.
// 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') }}">
Per farlo funzionare con URL non carini ho dovuto fare:
asset('/');
<base href="{{ asset('/') }}" />
<base href="..."/>
causa della barra finale
Laravel offre un sacco di funzioni di supporto e per le tue esigenze puoi semplicemente
usa la funzione url () di Laravel Helpers
ma in caso di Laravel 5.2 dovrai usare url ('/')
ecco l'elenco di tutte le altre funzioni di supporto di Laravel
url('/css/style.css')
Un'altra possibilità: {{ URL::route('index') }}
Puoi anche usare URL :: to ('/') per visualizzare l'immagine in Laravel. Vedi sotto:
<img src="{{URL::to('/')}}/images/{{ $post->image }}" height="100" weight="100">
Supponiamo che l'immagine sia archiviata in "pubblico / immagini".
Per ottenere l'URL dell'app che hai configurato puoi utilizzare:
Config::get('app.url')
app.url
sembra essere un fallback
L'ho usato e ha funzionato per me in Laravel 5.3.18:
<?php echo URL::to('resources/assets/css/yourcssfile.css') ?>
NOTA IMPORTANTE: funzionerà solo quando hai già rimosso "pubblico" dal tuo URL. Per fare ciò, puoi dare un'occhiata a questo utile tutorial .
A proposito, se il tuo percorso ha un nome come:
Route::match(['get', 'post'], 'specialWay/edit', 'SpecialwayController@edit')->name('admin.spway.edit');
Puoi usare la route()
funzione in questo modo:
<form method="post" action="{{route('admin.spway.edit')}}" class="form form-horizontal" id="form-spway-edit">
Altre funzioni utili:
$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
È possibile utilizzare le facciate o la funzione di supporto come indicato di seguito.
echo URL::to('/');
echo url();
Laravel utilizza Symfony Component per Request, logica interna Laravel come segue.
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;
}
Ho trovato un altro modo per ottenere l'URL di base per visualizzare il valore della variabile d'ambiente APP_URL
env('APP_URL')
che visualizzerà l'URL di base come http: // domains_your // yours_website . attenzione, presuppone che tu abbia impostato la variabile d'ambiente nel file .env (che è presente nella cartella principale).
ho anche usato base_path () fuction e ha funzionato
/something/
esso creerà l' URL giusto.