SAE 106
Gérer un projet de communication numérique
Ce projet est un site web permettant de générer des liens raccourcis en utilisant le framework Laravel.
La fonction qui permet de sauvegarder les liens dans la base de données:
/**
* Store a newly created resource in storage.
*
* @param LinkRequest $request
* @return Application|RedirectResponse|Redirector
*/
public function store(LinkRequest $request): Application|RedirectResponse|Redirector
{
if(str_starts_with($request?->destination_url, config('app.url'))) return redirect(route('links.index'));
$link = Link::firstOrCreate([
'destination_url' => $request->destination_url,
], $request->validated());
return redirect(route('links.index'))->with('code', $link->code);
}
La fonction permettant de générer un code unique lorsqu'un nouveau lien est créé:
private function generateUniqueCode(): string {
$code = Str::random(6);
if (Link::where('code', $code)->count() > 0) {
return $this->generateUniqueCode();
}
return $code;
}