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'));
}
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();
}
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)]);
}
Hello,
Tu peux aussi voir au niveau des scopes dans les models c'est pratique