laravel carica vista da un nome di cartella con punto reale

Sto creando un'app Laravel multi-dominio, quindi i miei file di visualizzazione si trovano in cartelle separate per dominio. Ad esempio, il seguente:

return view('pages/' . $_SERVER['SERVER_NAME'] . '/public/home', []); 

dovrebbe caricare una vista sotto

 pages/domain.com/public/home.blade.php 

ma invece tenta di caricare

 pages/domain/co/public/home.blade.php 

a causa della notazione a punti.

Come faccio a evitare questo?

Dovresti aggiungere uno spazio dei nomi di visualizzazione per impostare i suggerimenti per una cartella particolare se ci sono dei punti nel nome.

 $domain = 'domain.com'; View::addNamespace($domain, config('view.paths')[0]."/{$domain}/"); Route::get('example', function() use ($domain) { return view("{$domain}::home"); }); 

Potresti usare base_path('resources/views') invece dell'esempio sopra config('view.paths')[0] che è probabilmente un po 'più sensato nel caso qualcuno riordini o cambi il valore di config('view.paths')

Forse potresti sostituire il punto con il carattere di sottolineatura:

 $domain = str_replace('.', '_', $_SERVER['SERVER_NAME']); return view('pages/' . $domain . '/public/home'); 

e caricare la vista sotto:

 pages/domain_com/public/home.blade.php