Éviter la répétition

Par SoBaDayz, il y a 7 ans


Bonjour;

J'aimerais savoir si c'était possible d'éviter la répétition du $user dans les deux méthodes car je l'appelle pour chaque méthode

index = page utilisateur

about = page information de l'utilisateur

Je vous remercie.

/** * @param $username * @return \Illuminate\Contracts\View\View */ public function index($username){ $user = $this->user_repository->getFindAccount($username); return $this->view->make('user.index', compact('user')); } /** * @param $username * @return \Illuminate\Contracts\View\View */ public function about($username){ $user = $this->user_repository->getFindAccount($username); return $this->view->make('user.pages.about', compact('user')); }

7 réponses

SoBaDayz, il y a 7 ans

Salut,

Super ta réponse rapide et je vais regarder merci beaucoup.

SoBaDayz, il y a 7 ans

J'ai essayé ça marche super, mais quand je recherche un id qui n'existe pas il me renvoie plus une 404 mais un

No query results for model [App\User].

comment changer ça ? Je vous remercie

PS: J'utlise un firstOrFail

Méthode getFindAccount de mon repository:

public function getFindAccount($username) { return $this->user->newQuery()->where('username', $username)->firstOrFail(); }
Kamar-Meddah, il y a 7 ans

Bonjour SoBaDayz

Je te conseille de créer une fonction dans une class service ou meme dans le controller comme celui-ci

private function findUserByUsername(string $username){ return $this->user_repository->getFindAccount($username); }

Ensuite tu peux l'appeler comme celui-ci

/** * @param $username * @return \Illuminate\Contracts\View\View */ public function index($username){ return $this->view->make('user.index', ["user"=>$this->findUserByUsername($usename)]); } /** * @param $username * @return \Illuminate\Contracts\View\View */ public function about($username){ return $this->view->make('user.pages.about',["user"=>$this->findUserByUsername($usename)]); }
SoBaDayz, il y a 7 ans

Bonjour Kamar-Meddah,

Merci de ta réponse, c'est top !

Kamar-Meddah, il y a 7 ans

Bonjour SoBaDayz
de rien , ça fait un plaisir qu j'ai pu t'aider
:)