Ich habe ein sehr seltsames Problem, ich habe eine Route-Gruppe für Wildcard-Subdomains eingerichtet und es übergibt jetzt die Subdomain-Variable an meine Controller anstelle der richtigen Variable;Laravel Route :: Gruppe falsche Variablen übergeben
Route::group(['domain' => '{subdomain}.website.co.uk', 'middleware' => 'custom'], function() {
Route::group(['middleware' => 'auth'], function(){
Route::get('/customer/view/{customerID}', '[email protected]');
});
});
ich dann versuchen, und die Lade-/Kunde/view/20 und die Daten, die angezeigt wird, ist die Sub-Domain und nicht 20
public function viewCustomer($customerID){
dd($customerID);
}
Ich kann nicht sehen, warum die {Sub-Domain} von der Routengruppe an alle meine Controller-Funktionen statt in diesem Fall {customerID} übergeben
Die "benutzerdefinierte" Middleware ist die unten, nur für den Fall, dass dies verursacht wird;
namespace App\Http\Middleware;
use Closure;
use App\Whitelabel;
class Custom
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if($request->route('account') != 'my'){
if(\Cookie::get('sub_domain') == NULL || \Cookie::get('sub_domain') != $request->route('account')) {
$whitelabel = Whitelabel::where('subdomain', '=', $request->route('account'))->first();
if($whitelabel){
\Cookie::queue('sub_domain', $request->route('account'), 43200);
\Cookie::queue('reseller_name', $whitelabel->reseller_name, 43200);
\Cookie::queue('reseller_logo', $whitelabel->logo_url, 43200);
\Cookie::queue('reseller_colour', $whitelabel->custom_colour, 43200);
\Cookie::queue('top_bar_colour', $whitelabel->top_bar_colour, 43200);
}else{
\Cookie::queue(\Cookie::forget('sub_domain'));
\Cookie::queue(\Cookie::forget('reseller_name'));
\Cookie::queue(\Cookie::forget('reseller_logo'));
\Cookie::queue(\Cookie::forget('reseller_colour'));
\Cookie::queue(\Cookie::forget('top_bar_colour'));
return \Redirect::to('http://my.website.co.uk/'.$request->path());
}
}
}else{
\Cookie::queue(\Cookie::forget('sub_domain'));
\Cookie::queue(\Cookie::forget('reseller_name'));
\Cookie::queue(\Cookie::forget('reseller_logo'));
\Cookie::queue(\Cookie::forget('reseller_colour'));
\Cookie::queue(\Cookie::forget('top_bar_colour'));
}
return $next($request);
}
}
Dies ist nur das White-Label-Farbschema und das Logo zu setzen verwendet.
Versuchen bearbeiten die Methode wie folgt: 'public function viewCustomer ($ Sub-Domain, $ customerID)' und sehen, ob die Variablen-Inhalte korrekt sind. –
Oder versuchen Sie dieses 'Route :: -Muster ('Subdomain', '(dev.app | app)'); Route :: group (['domäne' => '{subdomain} .website.co.uk', 'middleware' => 'benutzerdefiniert'], function() { Route :: group (['middleware' => 'auth'], Funktion() { Route :: get ('/ customer/view/{KundenID}', 'CustomerController @ viewCustomer'); }); }); '! – Maraboc
Der erste Kommentar funktionierte perfekt, Hinzufügen von $ Subdomain zu den Funktionsparametern, nicht ideal, aber funktioniert –