Adquiere este curso para tener acceso a todas las lecciones
Comprar curso15. Redireccionar a la página original
1 comentarios
Inicia sesión para comentar
Comentarios:
-
Miguel Angel hace 1 año
Victor, gracias por compartir tus conocimientos.
Cuando doy click en los enlaces todo funciona correctamente. Sin embargo al copiar y pegar el enlace no funciona y da el error 404 NOT FOUND.
Este es el codigo:
Route::get('/{link}', function (Link $link) {
$ip = env('APP_ENV') == 'local' ? '173.255.175.40' : request()->ip();
$response = Http::get('http://ip-api.com/json/' . $ip)->json();
$link->visits()->create([
'country' => $response['country'],
'ip_address' => $ip,
'user_agent' => 0
]);
return redirect($link->url);
})->name('shortlink');
Gracias por tu ayuda
-
Victor Arana Flores hace 1 año
Hola amigo, te sugiero que revises tus rutas
El error 404 indica que la ruta a la que quieres acceder no existe. Segun lo que reviso está bien formada, entonces el problema puede ser a la hora de buscar en la bbdd el registro.
Asegurate que al definir public function getRouteKeyName() este apuntando correctamente al campo que identifica a cada registro -
Miguel Angel hace 1 año
Hola Victor
Gracias por responder
Definitivamente como esta lo anterior ( Route::get('/{link}', function (Link $link) {} ) no me funciono.Me está funcionando con este codigo:
Route::get('/{link}', function ($link, Illuminate\Http\Request $request) {
$link = App\Models\Link::where('slug', $link)->first();
if ($link) {
$user_agent = $request->header('User-Agent');
$ip = env('APP_ENV') == 'local' ? '173.255.175.40' : request()->ip();
$response = Http::get('http://ip-api.com/json/' . $ip)->json();
$link->visits()->create([
'country' => $response['country'],
'ip_address' => $ip,
'user_agent' => $user_agent
]);
return redirect($link->url);
} else {
throw new Exception("Página no encontrada", 404);
}
})->name('shortlink');
Saludos
Miguel Angel
-