Comment mettre à jour un enregistrement dans le modèle de table associé par expression de chaîne?
C'est ce que je fais actuellement (et ça marche) p> mais puis-je faire ce qui précède d'une manière plus élégante, telle que? p>
3 Réponses :
$user = User::with('token')->findOrFail(1); $user->token->update(['token' => $request->token]);
dans une ligne:
User::find(1)->token()->update(['token' => $new_token]);
null code> si l'identifiant de l'utilisateur n'est pas trouvé. LI>
- Les événements de modèle enregistrés et mis à jour ne seront pas tirés pour les modèles mis à jour. LI>
- L'exécution de la méthode de mise à jour est Ne pas passer par le modèle éloquent méthodes. li>
ul>
Cependant, dans votre cas particulier, je pense qu'il est valide, spécialement si vous savez que l'ID utilisateur sera toujours valide. P> P>
Yo peut le faire comme ceci: ou strong> en vous app \ jeton code> classe comme ceci: p >
public function update_token(string $new_token)
{
$this->update(['token'=>$new_token]);
}
Je pense que votre approche est plutôt bonne
Être un nerd, j'espérais qu'il y a un moyen plus pratique de le faire
Eh bien, vous pouvez le faire aussi sur une ligne:
Utilisateur :: Trouver (1) -> Jeton () -> Mise à jour (['Token' => $ NEW_TOKN]); CODE>
Je l'accepterais comme une réponse correcte parce que je l'aime
J'ai élaboré un peu plus comme une réponse