Les demandes Angulaire 8

Comment pouvons-nous faire d'un point de terminaison d'accepter la demande, comme nous le faisons dans Django comme

urlpatterns = [
    path("view/<id:str>", include(views.urls))
]

Je suis en train de créer un blog qui a une fin-"point de vue" qui j'en veux pour preuve le post en fonction de l'id spécifié comme

http://localhost:4200/view/32

Alors, le poste correspondant à "32" sera montré dans les DOM.

+1
2019-09-17 10:15:53
source
2 réponses

Je vous recommande les éléments suivants:

  1. Ajouter un champ "prix" à la table de formation. De cette façon, si dans le futur, vous l'augmentation des prix, tout votre historique reste avec le prix actuel.
  2. Après l'enregistrement de votre "formation", aller de l'avant et de calculer les heures entre les deux dates à l'aide de Carbone de la bibliothèque, puis sélectionnez votre prix actuel de la TypeTraining table à l'aide de cette valeur.
  3. Stocker la valeur dans la table de Formation et puis vous pouvez facilement calculer la somme de n'importe où.
+0
2019-09-17 10:26:02

Je pense que, comme JoeGalind dit, vous devriez sérieusement envisager de re-archetecting ce sera plus simple. D'avoir à appeler un TypeTraining objet qui n'a rien, mais un prix, devrait en effet être déplacé jusqu'à la Formation de l'objet. Toutefois, permettez-moi de passer par un moyen de le résoudre avec votre code existant.

Tout d'abord, comme vous l'avez dit, vous avez besoin pour obtenir le nombre d'heures de la formation demandée. Malheureusement, vous avez besoin d'une partie des heures au lieu des heures entières à modifier le prix. Si vous avez besoin des heures entières, ce serait facile, vous pouvez utiliser le Carbone méthode de diffInHours(). Mais on peut le faire avec diffInMinutes(), puis de calculer l'heure partielle.

Tout d'abord, nous avons besoin d'analyser les heures à venir à partir du formulaire en Carbone de l'objet:

$start = Carbon::parse($request->get('hour_start'));
$end= Carbon::parse($request->get('hour_end'));

Remarque, je ne sais pas comment elle est venue de votre formulaire. Vous pourriez avoir besoin d'analyser différemment si le ci-dessus ne fonctionne pas. Quelque chose comme:

createFromFormat('H:i', $request->get('hour_start'))

ou

createFromFormat('H:i:s', $request->get('hour_start'))

Maintenant que vous avez un carbone de l'objet, nous avons besoin de calculer la différence, y compris la partie heures. Encore une fois, nous allons utiliser les minutes et calculer pour une partie des heures:

$mins = $end->diffInMinutes($start, true);
$hoursTraining = $mins/60;

Cela donnera à votre multiplicateur (le nombre d'heures de formation), quelque chose comme 2,0 ou 2,5 ou 2,25, etc. À partir d'ici, si vous avez un prix de base pour une heure (qui est ce que j'attends est dans ce TypeTraining modèle de price champ), c'est facile:

$total = $typeTraining->price * $hoursTraining;

La partie la plus difficile, basé sur la façon dont vous avez votre code, est que vous devez tirer le TypeTraining avec la Formation, afin de connaître le prix (là encore, il suffit de coller le prix de la formation pour rendre la vie plus facile).

Pour obtenir le prix, quelque chose comme ceci:

$training = Training::with('typeTraining')->where('fk_student', $request->get('fk_student)->first();
$price = $training->typeTraining->price;

Maintenant, vous avez le prix de la brancher dans la formule ci-dessus.

Ce n'est certainement pas exact. Et en tirant la formation, avec le FK de l'étudiant est probablement pas ce que vous voulez. Si c'est le générique de formation, ou un autre identificateur, l'utiliser pour tirer la formation pour obtenir le prix. Mais vous pouvez décider que plus tard. Je ne peux que deviner une partie de cela, comme je ne sais pas ce qui arrive, ou ce que votre requête doit être, ou vos relations, mais ce devrait vous donner une idée. Plus important encore, vous m'ont demandé comment faire pour calculer le total, à laquelle répond plus au-dessus.

+0
2019-09-17 10:26:02

Voir d'autres questions sur les étiquettes