Bonjour,

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

Ce que je fais

Chapitre : paginer les biens
Je suis au moment où après avoir renseigné le fichier PropertyFixture , on lance la ligne de commande php bin/console doctrine:fixtures:load pour charger dans la base de donnée les 100 biens (vers le début de la 5ème minute de la vidéo)
Ci-après mon code du fichier PropertyFixture :

<?php

namespace App\DataFixtures;

use App\Entity\Property;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Faker\Factory;

class PropertyFixture extends Fixture
{
    public function load(ObjectManager $manager)
    {
        $faker = Factory::create('fr_FR');
        for($i = 0; $i < 100; $i++)
        {
            $property = new Property();
            $property
            ->setTitle($faker->words(3, true))
            ->setDescription($faker->sentences(3, true))
            ->setSurface($faker->numberBetween(12, 400))
            ->setRooms($faker->numberBetween(1, 10))
            ->setBedrooms($faker->numberBetween(1, 10))
            ->setFloor($faker->numberBetween(0, 15))
            ->setPrice($faker->numberBetween(100000, 2000000))
            ->setHeat($faker->numberBetween(0, count(Property::HEAT) - 1))
            ->setCity($faker->city)
            ->setAdress($faker->adress)
            ->setPostalCode($faker->postcode)
            ->setSold(false);
        $manager->persist($property);
        }
        // $product = new Product();
        // $manager->persist($product);

        $manager->flush();
    }
}

Ce que je veux

Je cherche à injecter dans la BD 100 biens

Ce que j'obtiens

j'ai le message d'erreur suivant :
Argument 1 passed App\Entity\Property::setTitle must be of the type string. array given. Pourtant, j'ai bien porté words à true.
Au final, aucun élément n'a été chargé dans la base de données.

Merci par avance pour votre aide.

11 réponses


tikoum
Auteur

Quelqu'un peut m'aider svp ?

Bonjour,
Le code à l'air juste, il faut peut être vider le cache.

tikoum
Auteur

Bonjour Olive,
Merci pour ton retour.
Ca fonctionne, j'avais fais une erreur au niveau du champ address (j'avais mis qu'un seul d).

Je suis en train d'essayer de mettre une socket io sur un site pour faire un chat (j'ai suivi le tutoriel de Grafikart sur le sujet. malheureusement je bloque vers la 9eme minute après le loading de socket io: le socket ne se connecte pas et je n'ai pas l'info démarrage socket.io started.
Est ce que tu connais ce sujet ?

Bonjour tikoum

oui je connais bien socket.io. Quand tu lances ton script c'est normal que n'est pas 'socket.io started' la version actuelle n'affiche rien.

Pour savoir si le socket ecoute, tu peux faire un netstat. Si tu es sous linux

netstat -laputen | grep 1337
tikoum
Auteur

Bonjour Olive,
Merci pour ta réponse. Effectivement, En lisant de la doc ds la doc que socket io pour les versions >1, il est log à 0 par défaut.
Je suis sur windows. Est ce que tu connais le script pour ce système afin de savoir si le socket écoute ou il faut poursuivre le tuto en mode silent ?

sous windows:

netstat -a
tikoum
Auteur

Merci. Je te tiendrais informé.

tikoum
Auteur

Je dois m'occupé de mon wamp qui ne fonctionne plus.

tikoum
Auteur

J'ai lancé la commande netstat -a, mais je ne vois dans la liste des ports le 1337. estb ce normal ?

tikoum
Auteur

Bonjour Olive,
Je crois que ça ne fonctionne pas. A supposer même que socket.io est en mode silent, quand je charge la page de mon site web, il n'y a vraiment rien dans les lignes de commande qui s'affiche. Je pense que le socket.io.js ne se charge pas car quand j'appelle localhost:1337/socket.io/socket.io.js, je n'ai pas la bonne librairie qui s'affiche (c'est un code très compact - comme un défilement de ligne). Le socket.io n'est plus le parent direct de socket.io.js, il y a un répertoire lib entre eux. C'est peut-être un problème de chemin mais même quande je le modifie, ça ne fonctionne pas.
Est ce que tu peux m'aider ?

tikoum
Auteur

Merci laura, il s'agissait en fait d'une erreur au niveau du champ Address (avec 2 d).
Est ce que tu as des connaissances avec nodejs ?