Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all 13822 articles
Browse latest View live

Symfony 4 - Probleme Serveur qui ne se met pas à jour.

$
0
0

Bonjour,

Voilà j'ai besoin de votre aide pour un problème qui me dépasse et que je trouve même très étrange.

J'ai déposé ici : www.mao-bd.com un site réalisé sous symfony 4. Le site fonctionne très bien ... sauf que je ne peux plus faire de modifications sur les fichiers qui se trouvent sur le serveur. Je m'explique, lorsque je redépose un fichier ou le corrige directment en ligne, les modifications n'apparaissent pas.

Evidement j'ai vidé le cache de mon navigateur 1000 fois, changé de navigateur, d'ordi, regarder sur mon tel ... Rien ne bouge. Par exemple, si je fais une simple correction de texte dans un titre, rien ne bouge. Je suis sur ovh en serveur Mutualisé.

A savoir que j'ai bien redirigé mon site vers monsite/public et que ce que je met dans le dossier public s'affiche bien. De même si je dépose une image j'y accède bien en ligne. Par contre tout ce qui concerne Symfony ou du code visiblement il ne veut pas l'afficher.

Existe t'il un cache sur le serveur ?

Ah et oui j'ai essayé de tout redéposer ... c'est la cata, plus rien ne marche à part la home, pour toutes les autres routes il me met une erreur 404 ... j'ai réussi à retrouver le site fonctionnel en re-téléchargeant une sauvegarde du serveur.

Est-ce que vous avez une idée ou déjà rencontré ce problème ?

Merci de votre aide

Yohann


Symfony 4 - problème avec ObjectManager

$
0
0

Bonjour,

Voici l'erreur que je rencontre actuellement :
Cannot autowire argument $manager of "App\Controller\BlogController::create()": it references interface "Doctrine\Common\Persistence\ObjectManager" but no such service exists. You should maybe alias this interface to the existing "doctrine.orm.default_entity_manager" service.

Et voici mon controller :

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\Common\Persistence\ObjectManager;
use App\Entity\Article;
use App\Repository\ArticleRepository;

class BlogController extends AbstractController
{
   /**
     * @Route("/blog/new", name="blog_create")
     */
    public function create(ObjectManager $manager)
    {
            $article = new Article();
            $article->setTitle('Titre statique de mon article')
                    ->setContent('Contenu statique de mon article')
                    ->setImage('Image statique de mon article')
                    ->setCreatedAt(new \DateTime());

            $manager->persist($article);
            $manager->flush();

           return $this->render('blog/create.html.twig');
    }
 }

NB : je débute sur Symfony 4, veuillez m'excuser si ma question vous semble triviale et merci d'avance pour vos réponses :)

PHP / Ajax : Exceptions

$
0
0

Bonjour,

Je fais des appels à des scripts PHP à partir d'un js.
Voici la situation :
Côté javascript :
loadQCQ: function (qcq_id, rootListItem, forceReplaceView)

  • {around qcqList.fetch({around data: {controller: "QcqRegistration", action: "getQcqChildren", params: {qcq_id: qcq_id}},around success: function(){around ...around }around error: function (model, response) {around console.log(response.responseText);around ...around }around }* Côté PHP, dans une méthode, je lève une exception...aroundthrow new Exception("Il n'y a pas de QCQ correpodant");around...

Quand l'appel au PHP lève l'exception "Il n'y a pas de QCQ correpodant", côté javascript je passe dans le bloc "error: function (model, response) {..." et quand j'affiche l'erreur j'obtient "500 Server Internal Error" au lieu de "Il n'y a pas de QCQ correpodant".

Quelqu'un aurait il eu un comportement similaire et d'où cela peut il provenir.

Merci par avance

Mon Bot discord

$
0
0

Bonjour,

Je me suis lancé dans la création d'un bot....
Ce qui n'est pas une tâche aisée.

Je n'ai aucune base en nodejs, quelques unes en python et javascript.
Et je suis complètement perdu.

Actuellement, je n'ai essayé d'ajouter qu'un option, elle permettrait d'alerter par message privé les personnes avec le role staff que quelqu'un a rejoins le channel vocal 'attente staff'.
Seulement, je n'ai trouvé que comment envoyer la "notification" dans un channel texte sur le discord (et encore, je ne suis pas sûr du résultat :( ).

const Discord = require('discord.js');
const uchiha = new Discord.client();

uchiha.on('ready', () => {
    console.log('Je suis prêt !')
});

uchiha.on('voiceStateUpdate', (newMember) => {
  let newUserChannel = newMember.voiceChannel
  if(newUserChannel === /*'attente staff'*/){
    channels.find(ch => ch.name === /*'prive staff'*/).sendMessage('Un ticket est ouvert @Staff')
  }
})

uchiha.login('NjUyNTMyMTMxNjA3NjA5MzU2.Xe47jQ.YQ6n7VleFQ0hTbjSan-SLiFYMh4')

Si vous pouviez m'aider à ne serait-ce que faire cela, je vous serait reconnaissant :) mais si en plus, vous pouviez me renseigner sur quelques questions :

  • C'est quoi "async" ?
  • Quelle est la différence entre "var", "let" et "const" ?
  • C'est quoi les évenements (events) ?
  • "Require (.....)" je sais que c'est pour charger un module mais dites m'en plus...
  • J'ai déjà vu dans des vidéos des f.readdir ou f.length.... et en même temps, un "const fs = require('fs.js')" <- à quoi sert ce module dans la programmation d'un bot discord ?
  • Les .then etc. j'y comprend riennnn
  • J'ai aussi vu des trucs du style qqlqchose = new Discord.Collection (); <- à quoi ça sert ???

Merci beaucoup pour vos réponses :))))

Warning: Invalid argument supplied for foreach()

$
0
0

Bonjour,

Je cherche a afficher différentes informations concernant la météo sur une page web.
dans le terminal de Visual Code, aucune erreures n'est détécté mais quand j'actualise ma page web, Warning: Invalid argument supplied for foreach() in C:\wamp64\www\TutoPHP\meteo.php on line 10 !!!
J'ai beau chercher, je ne trouve pas l'erreur dans mon code

meteo.php

<?php
require_once 'class/OpenWeather.php';
$weather = new OpenWeather('d06a7624b25ddfd1c5074974b8e78dc8');
$forecast = $weather->getForecast('Lyon,fr');
require 'elements/header.php';
?>

    <div class="container">
        <ul>
            <?php foreach($forecast as $day): ?>
            <li><?= $day['date']->format('d/m/Y') ?> <?= $day['description'] ?> <?= $day['temp'] ?>°C </li>
            <?php endforeach ?>
        </ul>
    </div>

<?php require 'elements/footer.php' ?>

OpenWeather.php

<?php
class OpenWeather {

    private $apiKey;

    public function __construct(string $apiKey)
    {
        $this->apiKey = $apiKey;
    }

    public function getForecast(string $city): ?array
    {
        $curl = curl_init("https://samples.openweathermap.org/data/2.5/forecast/daily?q={$city}&appid={$this->apiKey}&units=metric&lang=fr");
        curl_setopt_array($curl, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CAINFO => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'cert.cer',
            CURLOPT_TIMEOUT => 1
        ]);
        $data = curl_exec($curl);
        if ($data === false || curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) {
            return null;
        }
        $results = [];
        $data = json_decode($data, true);
        foreach($data['list'] as $day) {
            $results[] = [
                'temp' => $day['temp']['day'],
                'description' => $day['weather'][0]['description'],
                'date' => new DateTime('@' . $day['dt'])
            ];
        }
        return $results;
    }

}

Si quelqun a la solution :)

[SYMFONY 4] Création d'entités en Reverse Engineer

$
0
0

Bonjour à tous :)
Je travaille actuellement sur un projet sous symfony 4 qui m'oblige à créer des entités via une base de données déjà existante.

Je suis donc passé par la doc : https://symfony.com/doc/current/doctrine/reverse_engineering.html
En suivant cette doc, j'ai donc créé mes entités à l'aide de la commande :

php bin/console doctrine:mapping:import "App\Entity\Cogi" annotation --path=src/Entity/Cogi

Puis j'ai généré les getters et setters à l'aide de la commande :

php bin/console make:entity --regenerate App\Entity\Cogi

Jusqu'a cette étape, aucun problème, cependant j'ai maintenant besoin d'avoir des relations OneToMany les entités concernées

La doc indique :
If you want to have a OneToMany relationship, you will need to add it manually into the entity (e.g. add a comments property to BlogPost) or to the generated XML or YAML files. Add a section on the specific entities for one-to-many defining the inversedBy and the mappedBy pieces.

J'ai donc modifié mes fichiers Gclien00001.php et Gfactu00001.php, représentant mes entités de clients et de factures lié en OneToMany en ajoutant les use, les annotations, le __construct et les getters/setters suivants :

Gclient00001.php

<?php

namespace App\Entity\Cogi;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\JoinTable;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\ArrayCollection;

/**
 *
 * @ORM\Entity
 */
class Gclien00001
{

    //Mes autres variables privates

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Cogi\Gfactu00001", mappedBy="Gclien00001")
     */
    private $factures;

    public function __construct()
    {
        $this->factures = new ArrayCollection();
    }


    //Mes autres getters / setters

    /**
     * @return Collection|Gfactu00001[]
     */
    public function getFactures(): Collection
    {
        return $this->factures;
    }

    public function addFacture(Gfactu00001 $facture): self
    {
        if (!$this->factures->contains($facture)){
            $this->factures[] = $facture;
            $facture->setIdGclien($this);
        }

        return $this;
    }

    public function removeFacture(Gfactu00001 $facture): self
    {
        if ($this->factures->contains($facture)) {
            $this->factures->removeElement($facture);
            // set the owning side to null (unless already changed)
            if ($facture->getIdGclien() === $this) {
                $facture->setIdGclien(null);
            }
        }

        return $this;
    }


}

Gfactu00001.php

<?php

namespace App\Entity\Cogi;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
 * @ORM\Entity
 */
class Gfactu00001
{

    //Mes autres privates

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Cogi\Gclien00001", inversedBy="factures")
     * @ORM\JoinColumn(nullable=true)
     */
    private $idGclien;


    //Mes autres getters/setters

    public function getIdGclien(): ?Gclien00001
    {
        return $this->idGclien;
    }

    public function setIdGclien(?Gclien00001 $idGclien): self
    {
        $this->idGclien = $idGclien;

        return $this;
    }

}

Cependant, j'ai du oublier une étape car lorsque j'affiche mes entités :

  • La variable idGclien de Gfactu00001 reste l'id de la factures
  • La variable factures de Gclient00001 est null

Du coup, je suis un peu perdu, est ce que vous auriez une idée de ce que j'ai oublié / là où je me suis trompé ?
Merci d'avance :)

Enquête métier développeur web

$
0
0

Bonjour,
J'ai besoin de votre aide afin de valider mon projet de reconversion professionnelle pour commencer une formation developpeur web. J'aurai 10 questions à poser sur le forum, par téléphone ou par mail. Si quelqu'un peut m'apporter son aide je serai reconnaissante.
Merci d'avance

Site à amélioré


Site à améliorer

Dm aux possesseurs d'un ou plusieurs rôles

$
0
0

Bonjour,

Je viens de commencer la programmaton d'un bot discord et je voudrais envoyer un message à toutes les personnes qui possèdent soit le grade1 soit le grade2.... ça fait plusieurs heures que je cherche et j'arrive à un truc ainsi qui ne fonctionne pas

message.guild.members.roles.has(idrole1 || idrole2).send('message....')

Et mon but serait d'envoyer à tous les membres qui possèdent soit le grade 1 soit le grade 2 un message similaire
et si possible sans utiliser de for.

Merci de vos réponses... :)) (si vous pouviez, si ce n'est pas trop demander, expliquer votre code, car je suis vraiment nouveau et je voudrais bien pouvoir comprendre chaque détail de votre code)

Navigation dans la même catégorie

$
0
0

Bonjour,

Je rencontre un problème inhabituel sur un site WordPress. J'ai un "Custom Post Type" pour un portfolio sur ce site et chaque élément du portfolio peut être rangé dans des catégories. Un élément peut donc appartenir à plusieurs catégories (même fonctionnement que les articles).

Pas de soucis pour afficher les éléments dans les bonnes catégories, par contre quand je rentre sur la fiche d'un élément du portfolio, je suis confronté à un problème avec la navigation suivant/précédent.

Ce que je voudrais c'est que si je rentre dans la catégorie A, je vais avoir tous les éléments qui en font partie et quand je rentre dans l'un d'eux, je peux naviguer d'un élément à l'autre de cette catégorie A grâce aux boutons suivants/précédents. Hors, comme chaque élément est associés à plusieurs catégories, je sors de la catégorie en cours à chaque fois.

J'ai pensé à un système dans lequel j'enregistre la catégorie actuelle en session pour l'utiliser dans la navigation mais ça me semble bizarre de devoir utiliser ça pour arriver mes fins. J'ai du rater quelque chose....

Si quelqu'un a une idée, je suis preneur.
Merci d'avance

[symfony 4] Création de livraisonController.php

$
0
0

Bonjour,

Je suis sur une application de gestion de vente. J'ai fais le CommandeController.php (voir ci-dessous). Je suis bloqué sur la partie LivraisonController.php, je ne sais pas comment faire le lien entre les deux Controller, en gros je ne sais pas comment faire la partie livraison.
Merci d'avance de votre aide

Ce que je fais

Voic mon code CommandeController.php

public function new(Request $request, Commande $commande = null, LigneCommande $lignecommande = null, ProduitRepository $produitRepository)
{

    $repo = $this->getDoctrine()->getRepository(Compteur::class);
    $compteur = $repo->find(1);
    $numcom = $compteur->getNumCom();

    if (!$commande && !$lignecommande) {
        $commande = new Commande();
        $lignecommande = new LigneCommande();
    }

    $form = $this->createForm(CommandeType::class, $commande);
    $form->handleRequest($request);

    $f = $this->createForm(LigneCommandeType::class, $lignecommande);
    $f->handleRequest($request);

    $tva = 0;
    $mht = 0;
    $lig = 0;
    $ttc = 0;
    $tht = 0;
    $ttva = 0;

    $session = $request->getSession();
    if (!$session->has('commande')) {
        $session->set('commande', []);
    }
    $choix = "";
    $tabcom = $session->get('commande', []);

    if ($form->isSubmitted() || $f->isSubmitted()) {
        $choix = $request->get('bt');
        if ($choix == "Valider") {
            $em = $this->getDoctrine()->getManager();
            $lig = sizeof($tabcom);
            for ($i = 1; $i <= $lig; $i++) {
                $lignecommande = new LigneCommande();
                $commande->addNumCom($lignecommande);
                $prod = $produitRepository->findOneBy(['id' => $tabcom[$i]->getProduits()]);
                $lignecommande->setProduits($prod);
                $lignecommande->setCommandes($commande);
                $lignecommande->setLigne($i);
                $lignecommande->setPu($tabcom[$i]->getPu());
                $lignecommande->setQuantite($tabcom[$i]->getQuantite());
                $lignecommande->setTva($tabcom[$i]->getTva());
                $em->persist($lignecommande);
                $mht = $tabcom[$i]->getPu() * $tabcom[$i]->getQuantite();
                $tva = $mht * ($tabcom[$i]->getTva()) * 0.01;
                $tht = $tht + $mht;
                $ttva = $ttva + $tva;
                $ttc = $ttc + ($tht + $ttva);
            }

            $commande->setTht($tht);
            $commande->setTtva($ttva);
            $commande->setDateCommandeAt(new \DateTime());
            $commande->setStatut(true);
            $commande->setTttc($ttc);


            $em->persist($commande);

            $compteur->setNumCom($numcom + 1);
            $em->persist($compteur);

            $em->flush();

            return $this->redirectToRoute('liste.commande');
        } elseif ($choix == "Ajouter") {
            $mht = $lignecommande->getPu() * $lignecommande->getQuantite();
            $lig = sizeof($tabcom) + 1;
            $lignecommande->setLigne($lig);
            $tabcom[$lig] = $lignecommande;
            $session->set('commande', $tabcom);
        }
    }
    return $this->render('commande/new.html.twig', [
        'commande' => $commande,
        'lcomm' => $tabcom,
        'form' => $form->createView(),
        'f' => $f->createView(),
        'numcom' => $numcom,
        'tht' => $tht,
        'ttva' => $ttva,
        'mht' => $mht,
        'lig' => $lig,
        'ttc' => $ttc,
        'LigneCommande' => $lignecommande,
        'prod' => $produitRepository->findAll(),
    ]);
}

chapitre 28, formation php : API

$
0
0

Ce sujet est déstiné au flemmards !!!

au lieu de coiper des dizaines de lignes, de galérer sur des erreures toutes bètes ou de perdre du temps, j'ai mis au point un système INCROYABLE

mon weather.php :

<?php
require_once 'class/OpenWeather.php';
$weather = new OpenWeather('d06a7624b25ddfd1c5074974b8e78dc8');
$forecast = $weather->getForecast('Lyon,fr');
require 'elements/header.php'
?>

mon OpenWeather.php :

<?php
class OpenWeather {

    private $apiKey;

    public function __construct(string $apiKey)
    {
        $this->apiKey = $apiKey;
    }

    public function getForecast(string $city)
    {
        $curl = curl_init("http://api.openweathermap.org/data/2.5/weather?q={$city}&APPID={$this->apiKey}&units=metric&lang=fr&mode=html");
        curl_exec($curl); 
    } 

}

Oui, j'ai enlevé 80% du cote et j'ai juste rajouter un &mode=htmla la fin de l'url de openweathermap ;)
j'espere pour vous que vous ne verrez pas ce sujet apres avoir fini de galérer sur l'api, sinon jte souhaite un BON GROS SEUM !!!

Création d'utilisateurs par un Admin

$
0
0

Bonjour à tous ,
Je me permet de vous solicité de nouveaux car j'ai un problème. Voila toujours en suivant la formations PHP de Grafikart, je rencontre un problème , je souhaite gérer moi même la création de compte utilisateur sur mon site web le but étant que l'orsque je les inscrits je leurs génère un mot de passe aléatoire qu'il reçoivent par mail et qu'il puisse par la suite le changer eux même. Enfin bon sa c'est une autre histoire.

Comme base de code j'ai repris le même principe que Grafikart donne pour créer une catégorie qu'ensuite j'ai mis à ma sauce concernant les champs voici le code de la page new.php (user)

<?php
use App\Auth;
use App\HTML\Form;
use App\Connection;
use App\Model\User;
use App\ObjectHelper;
use App\Table\UserTable;
use App\Validators\UserValidator;

Auth::check();
$title = "Créer un utilisateur | Administration ";

$item = new User();
$errors = [];
$fields =['username','password','email','role'];


if(!empty($_POST)){
        if (!empty($_POST['username']) && !empty($_POST['password']) && !empty($_POST['role'])){
            $errors['password'] = ['Vous devez saisir un identifiant ou mot de passe correcte pour poursuivre l\'inscription'];
            $password = $_POST['password'];
            $p_mail =$_POST['password'];
            $p = password_hash($password, PASSWORD_DEFAULT);
            $_POST['password'] = $p ;
            $pdo = Connection::getPDO();
            $table = new UserTable($pdo);
            $v = new UserValidator($_POST, $table);
            ObjectHelper::hydrate($item, $_POST, $fields);
            //dd($_POST);
        if ($v->validate()) {
            $table->create([
                'username' => $item->getUsername(),
                'password' => $item->getPassword(),
                'email' => $item->getEmail(),
                'role' => $item->getRole()
            ], $item->getID());
            header('Location:' . $router->url('admin_users'));
            exit();
        } else {
            $errors = $v->errors();
        }
    }
}
$form = new Form($item, $errors);

?>

Or j'obtiens une erreur :

 TypeError
Return value of App\Model\User::getId() must be of the type int or null, string returned

Alors que justement l'orsque je débug je n'envoie aucun champs "id" puisque l'id en tant normal sera créer dans la bdd avec l'autoicrément de celle-ci.

Voici mon model user.php au cas ou sa pourrait mieux vous éclairer que moi.

    public function setPassword(string $password): self
    {
        $this->password = $password;

        return $this;
    }

    public function getId(): ? int
    {
        return $this->id;
    }

    public function setId($id): self
    {
        $this->id = $id;

        return $this;
    }

Si quelqu'un aurait-une idée , merci d'avance.
J'ai dèja une piste , si j'enlève le champs "Role" l'utilisateur se créer sans soucis....

Problème avec les requêtes

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

J'ai bien recopier le code pour Espace membre refactoring mais je rencontre des problèmes concernant lesrequêtes préparées et les execute:

Register.php

1<?php
2 require_once 'inc/functions.php';
3 session_start();
4 if(!empty($_POST)){
5
6 $errors = array();
7 require_once 'inc/db.php';
8
9 if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])){
10 $errors['username'] = "Votre pseudo n'est pas valide (alphanumérique)";
11} else {
12 $req = $pdo->prepare('SELECT id FROM users WHERE username = ?');
13 $req->execute([$_POST['username']]);
14 $user = $req->fetch();
15 if($user){
16 $errors['username'] = 'Ce pseudo est déjà pris';
17 }
18}
19
20 if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
21 $errors['email'] = "Votre email n'est pas valide";
22 } else {
23 $req = $pdo->prepare('SELECT id FROM users WHERE email = ?');
24 $req->execute([$_POST['email']]);
$user = $req->fetch();
`

Login.php

8 if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])){
   9  require_once 'inc/db.php';
    10 $req = $pdo->prepare('SELECT *** FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL');
    ****11 $req->execute(['username' => $_POST['username']]);
                  12 $user = $req->fetch();
                 13 if(password_verify($_POST['password'], $user->password)){
                 14 $_SESSION['auth'] = $user;
                15 $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
               16 if($_POST['remember']){
              17 $remember_token = str_random(250);
    ****18 $pdo->prepare('UPDATE users SET remember_token = ? WHERE id = ?')->execute([$remember_token, $user->id]);
    19 setcookie('remember', $user->id . '==' . $remember_token . sha   
   20($user->id . 'ratonlaveurs'), time() + 60 * 60 * 24 * 7);

Après plusieurs modifications, j'ai donc repris le code source tel quel
mais à chaque fichier j'ai les mêmes erreurs: 
Register.php:
erreur à la ligne 13 et 24 (requêteexecute)
Dans Login.php c'est ligne 11 (erreur requête execute et à la ligne 18 requête préparée!Dans les fichiers functions.php ligne 35, fichier account.php ligne12 (requête préparée) Fichier confirm.php ligne 6 et 11 fichier forget lignes 6 et 11 et fichier reset.php lignes 6 et 12 qui on toutes trait à requêtes execute et préparée.
Je ne vois pas où est l'erreur!
Merci d'avance

Problème d'intervale

$
0
0

Hey ! Je rencontre un problème avec mon code...

Code

var fs = require('fs');

function start(name){
fs.writeFile('timerdata/' + name + '_timer.json', '1', function (err) {
    var timer = setInterval(function() { count(name); },1000);
  }); 
}

function get(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var message = 'Vous êtes à ' + data + ' secondes !'
        return message;
    });
}

function count(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var data = parseInt(data)
        var num = data + 1
        fs.writeFile('timerdata/' + name + '_timer.json', num, function (err) {
            console.log(name + ' : ' + num)
        }); 
    });
}

Problème

En effet, je cherche à faire une chrono qui stock la valeur actuel (ca marche). En revanche, je souhaite pouvoir via la fonction stop arreter le chrono de la personne choisie. Sauf que je n'y arrive pas. J'ai essayer :

clearInterval(x);

Sauf que si plusieur chrono sont lancer en même temps il stoppera tout !

Merci d'avance !

Problème OneToMany

$
0
0

Bonjour à tous,

Je suis encore débutant sur Symfony 4.3 mais j'adore, je me tire les cheuveux mais c'est un réel kiff. Voici mon problème.

Je souhaite créer une session pédagogique, dans cette session je peu créer des feuilles de présence. Mon but est de savoir si j'ai une ou plusieur feuille de présence présente dans ma sessions. Rien de plus simple me direz vous, mais pas pour moi ^^.

J'ai donc créer une entité pour mes feuilles de présence nommé "Timesheet" et une entité pour mes sessions nommée "Sessions".

Mon timesheet est en relation ManyToOne pour mes sessions et mes sessions en OneToMany pour mes timesheet. Je pense ne pas me tromper la dessus sauf si j'ai rien compris au relation ;-)

Dans ma session je souhaite vérifier si une feuille de présence est donc créer et voici ce que je fait en premier mon controller de session :

/**
     * @Route("/reprendre-session-pedagogique/", name="session.edit", methods="POST")
     * @param Request $request
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function edit(Request $request)
    {
        $idSession = $request->request->get('_id');

        $session = $this->getDoctrine()
        ->getRepository(Timesheet::class)
        ->findByIdSessions($idSession);

        var_dump($session);

        return $this->render('front/management/session/list-action.html.twig', [
            'idSession' => $idSession
        ]);
    }

En second mon entity Sessions :

<?php

namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\SessionsRepository")
 */
class Sessions
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\School")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Schools;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Classroom")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Classrooms;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Teacher")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Teachers;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\User")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Users;

    /**
     * @ORM\Column(type="date")
     */
    private $date;

    /**
     * @ORM\Column(type="time")
     */
    private $timesheet;

    /**
     * @ORM\Column(type="date")
     */
    private $dateStart;

    /**
     * @ORM\Column(type="date")
     */
    private $dateEnd;

    /**
     * @ORM\Column(type="boolean")
     */
    private $open = true;

    /**
     * @ORM\Column(type="datetime")
     *
     * @var \DateTime
     */
    private $createdAt;

    /**
     * @ORM\Column(type="datetime")
     */
    private $updateAt;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Timesheet", mappedBy="Sessions")
     */
    private $timesheets;


    public function __construct()
    {
        $this->createdAt = new \DateTime();
        $this->updateAt = new \DateTime('now');
        $this->timesheets = new ArrayCollection();
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getSchools(): ?School
    {
        return $this->Schools;
    }

    public function setSchools(?School $Schools): self
    {
        $this->Schools = $Schools;

        return $this;
    }

    public function getClassrooms(): ?Classroom
    {
        return $this->Classrooms;
    }

    public function setClassrooms(?Classroom $Classrooms): self
    {
        $this->Classrooms = $Classrooms;

        return $this;
    }

    public function getTeachers(): ?Teacher
    {
        return $this->Teachers;
    }

    public function setTeachers(?Teacher $Teachers): self
    {
        $this->Teachers = $Teachers;

        return $this;
    }

    public function getUsers(): ?User
    {
        return $this->Users;
    }

    public function setUsers(?User $Users): self
    {
        $this->Users = $Users;

        return $this;
    }

    public function getDate(): ?\DateTimeInterface
    {
        return $this->date;
    }

    public function setDate(\DateTimeInterface $date): self
    {
        $this->date = $date;

        return $this;
    }

    public function getTimesheet(): ?\DateTimeInterface
    {
        return $this->timesheet;
    }

    public function setTimesheet(\DateTimeInterface $timesheet): self
    {
        $this->timesheet = $timesheet;

        return $this;
    }

    public function getDateStart(): ?\DateTimeInterface
    {
        return $this->dateStart;
    }

    public function setDateStart(\DateTimeInterface $dateStart): self
    {
        $this->dateStart = $dateStart;

        return $this;
    }

    public function getDateEnd(): ?\DateTimeInterface
    {
        return $this->dateEnd;
    }

    public function setDateEnd(\DateTimeInterface $dateEnd): self
    {
        $this->dateEnd = $dateEnd;

        return $this;
    }

    public function getOpen(): ?bool
    {
        return $this->open;
    }

    public function setOpen(bool $open): self
    {
        $this->open = $open;

        return $this;
    }

    public function getDateStartSession(): ?\DateTimeInterface
    {
        return $this->dateStartSession;
    }

    public function setDateStartSession(\DateTimeInterface $dateStartSession): self
    {
        $this->dateStartSession = $dateStartSession;

        return $this;
    }

    public function getCreatedAt(): ?\DateTimeInterface
    {
        return $this->createdAt;
    }

    public function setCreatedAt(\DateTimeInterface $createdAt): self
    {
        $this->createdAt = $createdAt;

        return $this;
    }

    public function getUpdateAt(): ?\DateTimeInterface
    {
        return $this->updateAt;
    }

    public function setUpdateAt(\DateTimeInterface $updateAt): self
    {
        $this->updateAt = $updateAt;

        return $this;
    }

    /**
     * @return Collection|Timesheet[]
     */
    public function getTimesheets(): Collection
    {
        return $this->timesheets;
    }

    public function addTimesheet(Timesheet $timesheet): self
    {
        if (!$this->timesheets->contains($timesheet)) {
            $this->timesheets[] = $timesheet;
            $timesheet->setSessions($this);
        }

        return $this;
    }

    public function removeTimesheet(Timesheet $timesheet): self
    {
        if ($this->timesheets->contains($timesheet)) {
            $this->timesheets->removeElement($timesheet);
            // set the owning side to null (unless already changed)
            if ($timesheet->getSessions() === $this) {
                $timesheet->setSessions(null);
            }
        }

        return $this;
    }
}

puis mon entity Timesheet :

<?php

namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\TimesheetRepository")
 */
class Timesheet
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="boolean")
     */
    private $presence;

    /**
     * @ORM\Column(type="datetime")
     *
     * @var \DateTime
     */
    private $createdAt;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\School")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Schools;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Classroom")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Classrooms;

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Student", inversedBy="timesheets")
     */
    private $Students;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Sessions", inversedBy="timesheets")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Sessions;

    public function __construct()
    {
        $this->createdAt = new \DateTime('now');
        $this->Students = new ArrayCollection();
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getPresence(): ?bool
    {
        return $this->presence;
    }

    public function setPresence(bool $presence): self
    {
        $this->presence = $presence;

        return $this;
    }

    public function getCreatedAt(): ?\DateTimeInterface
    {
        return $this->createdAt;
    }

    public function setCreatedAt(\DateTimeInterface $createdAt): self
    {
        $this->createdAt = $createdAt;

        return $this;
    }

    public function getSchools(): ?School
    {
        return $this->Schools;
    }

    public function setSchools(?School $Schools): self
    {
        $this->Schools = $Schools;

        return $this;
    }

    public function getClassrooms(): ?Classroom
    {
        return $this->Classrooms;
    }

    public function setClassrooms(?Classroom $Classrooms): self
    {
        $this->Classrooms = $Classrooms;

        return $this;
    }

    /**
     * @return Collection|Student[]
     */
    public function getStudents(): Collection
    {
        return $this->Students;
    }

    public function addStudent(Student $student): self
    {
        if (!$this->Students->contains($student)) {
            $this->Students[] = $student;
        }

        return $this;
    }

    public function removeStudent(Student $student): self
    {
        if ($this->Students->contains($student)) {
            $this->Students->removeElement($student);
        }

        return $this;
    }

    public function getSessions(): ?Sessions
    {
        return $this->Sessions;
    }

    public function setSessions(?Sessions $Sessions): self
    {
        $this->Sessions = $Sessions;

        return $this;
    }

}

Puis mon repo Timesheet :

<?php

namespace App\Repository;

use App\Entity\Timesheet;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Persistence\ManagerRegistry;

/**
 * @method Timesheet|null find($id, $lockMode = null, $lockVersion = null)
 * @method Timesheet|null findOneBy(array $criteria, array $orderBy = null)
 * @method Timesheet[]    findAll()
 * @method Timesheet[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class TimesheetRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, Timesheet::class);
    }

    // /**
    //  * @return Timesheet[] Returns an array of Timesheet objects
    //  */
    /*
    public function findByExampleField($value)
    {
        return $this->createQueryBuilder('t')
            ->andWhere('t.exampleField = :val')
            ->setParameter('val', $value)
            ->orderBy('t.id', 'ASC')
            ->setMaxResults(10)
            ->getQuery()
            ->getResult()
        ;
    }
    */

    public function findByIdSessions($id)
    {
        $entityManager = $this->getEntityManager();

        $query = $entityManager->createQuery(
            'SELECT t, s
            FROM App\Entity\Timesheet t
            INNER JOIN t.sessions_id s
            WHERE t.id = :id'
        )->setParameter('id', $id);

        return $query->getOneOrNullResult();
    }
    /*
    public function findOneBySomeField($value): ?Timesheet
    {
        return $this->createQueryBuilder('t')
            ->andWhere('t.exampleField = :val')
            ->setParameter('val', $value)
            ->getQuery()
            ->getOneOrNullResult()
        ;
    }
    */
}

Pour autant j'obtiens cette erreur :

[Semantical Error] line 0, col 89 near 's
': Error: Class App\Entity\Timesheet has no association named sessions_id

Je comprend bien qu'il me dit qu'il ne connait aucune relation entre mon Timesheet et ma session mais pour autant il me semble l'avoir fait ou mal ^^

J'aurais besoins d'explication svp.

Merci à vous tous.

[Symfony 4] Collection d'images

$
0
0

Bonjour,

Je cherche un Bundle ou une façon de faire un upload multiple d'image. Actuellement j'utilise vich uploader pour mes images, maisde ce que j'ai vu il n'est pas possible de faire un upload multiple.

J'ai une entité Galerie, une sorte d'album photo, je souhaiterais donc avoir la possibilité d'ajouter un nombre indéfini d'image, et dans le meilleur cas pouvoir les réutiliser plus tard sur d'autres entités (une sorte de table annexe qui enregistre toutes les images uploadés)

Si vous avez des idées je suis preneur :)

Developper WEB - ETUDES (BTS Sio ?) [BESOINS D'AIDE]

$
0
0

Bonsoir,

Alors voila je viens d'avoir 18 en novembre ans et je suis acutellement en fac d'éco gestion. Je me suis rendu compte que j'aime vraiment pas ça et mon frère qui est passioné de developpement web et qui s'y connait m'as motivé a me former dans ce domaine et j'ai donc décidé de me réorienter pour le mois de Septembre 2020.

Cependant je suis vraiment perdu dans ce qui est des études pour y parvenir : dans ma ville il y a un BTS Sio ( INITIALE càd pas en alternance ) ou un DUT Informatique un peu plus loin et je me demande quoi choisir ? Je tiens a préciser que j'ai un niveau de maths mais alors vraiment faible ( 9, 6, 3.5 de moyenne et des mauvaises notes en terminale ES par contre j'étais plutôt bon en Spécialté MATHS ou là j'avais 14 13.5 et 11.5 ) et j'ai vu qu'il fallait quand même de bonnes bases en DUT informatique alors qu'en BTS Sio les maths ressemblent plus à de la spé de maths ES ( graphes, suites, algorithmes, etc... ).

Je pense donc qu'un BTS Sio en option SLAM corresponderait le mieux a mon cas (je suis mais alors vraiment foutu pour ce qui est des maths pour le DUT, j'ai eu 1/20 à mon CC du mois de novembre en éco gestion et 5/20 au BAC). Mais ce qui me perturbe a propose de ce BTS SIO c'est que j'ai pu voir sur certains forum que c'est pas un diplôme très valorisant aux yeux d'un employeur, qu'il est vraiment "bidon" comme le disent certains, etc...

Donc ma question est la suivante : Que me conseillez vous de faire comme études ? Y a t-il une suite d'études au BTS Sio (du genre bac +3 ou qlq chose d'autre) qui pourrait completer ce manque de valorisation ? Certains d'entre vous ont-ils suivis cette voie ? (vous allez me dire qu'il y a plein de forum mais sur ça mais je préfère vraiment recevoir des réponses d'actualités et à mon cas précis)

J'ai oublié de préciser que j'ai eu mon BAC ES avec 11/20, que j'ai de bonnes voir très bonnes remarques sur mes bulletins scolaires (comme par exemple seulement 1 voir 2 demi-journées d'absences par trimestre ou encore des compliments vis-à-vis de mon sérieux et implication en cours) que je n'ai pas les moyens d'aller étudier en école privées (payantes) donc je cherche surtouts des études dans le public. De plus j'ai déja commencé a me former a la programmation notamment avec mon frère ou encore les tutoriels de Grafikart sur l'HTML et le CSS (en créant notamment un mini projet de site de streaming / d'actualités sur les films, séries, mangas, etc...).

Voila voila j'espère que j'en demande pas trop :D en ésperent recevoir un peu d'aide :p ! Merciii

aide avec serveur web

$
0
0

je veux installation d'un serveur web sous apache2, phpmyadmin. Comment dois-je faire?

Viewing all 13822 articles
Browse latest View live