Ich habe Probleme, Cookie zu bekommen, ich definiere einen Cookie in einer Middleware "CheckReferral", aber wenn ich den Cookie in einem Controller den Cookie null zurückrufe, überprüfe ich den Cookie im Browser, und der Cookie ist gut im Browser, ich weiß nicht, was das Problem mit dem Cookie ist ... Ich habe zu viel gegooglet und das ist meine letzte Ressource, Jemand kann mir helfen? HierCookie :: get() return null
ist der Code, der Middleware:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckReferral
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->hasCookie('referral')) {
return $next($request);
} else {
if ($request->query('ref')) {
return redirect($request->fullUrl())->withCookie(cookie()->forever('referral', $request->query('ref')));
}
}
return $next($request);
}
Dies ist, wie ich das Cookie in der Steuerung aufrufen:
protected function create(array $data)
{
// $referred_by = User::where('affiliate_id', Cookie::get('referral'))->first();
// $referred_user = Cookie::get('referral');
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'affiliate_id' => $this->uniqueRandomString(),
'referred_by' => Cookie::get('referral'),
]);
}
Hier wird das Cookie im Browser gespeichert ist:
Hier ist die Datenbank ... das Feld referred_by, ist s Tored als null, aber sollte der Wert des Cookies speichern:
viel Dank, ich hoffe, das Problem zu lösen, und kennen die Ursache ...
Ja, ich habe die Middleware im Kernel definiert, da das Cookie im Browser gespeichert ist ... und die Middleware global ausgeführt wird, muss nicht in der Route definiert sein ... Und ich habe das '$ fillable 'eingegeben [] 'Das Problem ist Cookie :: get() return n null und ich habe es mit der Feld-E-Mail getestet, das ist nicht nulable, und ich bekomme den Fehler ... Also, das Problem ist der Cookie :: get() ... –
Bitte versuchen Sie es, wenn es tatsächlich als der Wert in Ihrer Middleware. '' Anfrage-> Abfrage ('ref') '' – verax
ja diese Abfrage ist der Wert in meiner Middleware ... –