Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]faker w symfony
codeszan
post 10.02.2018, 13:46:23
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


Wzorując się na tutorialu z internetu, chciałem nauczyć się podstaw symfony. Prawdopodobnie poniższy kod powinien mi wygenerować
losowe wpisy po wpisaniu polecenia php bin/console doctrine:fixtures:load w konsoli. To się niestety nie dzieje.

Pytanie: dlaczego w:
  1. $post->setTitle($faker->sentence(3));

nie mam dostepu do klasy z $faker.

W kodzie:
  1. $faker = Faker\Factory::create();

pokazywało mi czerwony wykrzyknik i podkreslenie Faker, przez przypadek jakoś to wyłączylem.
Teraz tylko po najechaniu pisze:
Undefined class Factory

W jaki sposob dobrać się do klasy Faker?
  1. <?php
  2.  
  3.  
  4. namespace AppBundle\DataFixtures\ORM;
  5.  
  6. use Doctrine\Common\DataFixtures\FixtureInterface;
  7. use Doctrine\Common\Persistence\ObjectManager;
  8.  
  9. class LoadPostData implements FixtureInterface
  10. {
  11. /**
  12.   * @param ObjectManager $manager
  13.   */
  14. public function load(ObjectManager $manager)
  15. {
  16.  
  17. $faker = Faker\Factory::create();
  18.  
  19.  
  20. for ($i = 1; $i <= 1000; $i++) {
  21.  
  22. $post = new \AppBundle\Entity\Post();
  23. $post->setTitle($faker->sentence(3));
  24. $post->setLead($faker->text(300));
  25. $post->setContent($faker->text(700));
  26. $post->setCreatedAt($faker->dateTimeThisMonth);
  27.  
  28. $manager->presist($post);
  29. }
  30.  
  31. $manager->flush();
  32. }
  33. }
Go to the top of the page
+Quote Post
viking
post 10.02.2018, 13:57:35
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Ustawiasz namespace stąd szukany plik to AppBundle\DataFixtures\ORM\Faker\Factory


--------------------
Go to the top of the page
+Quote Post
codeszan
post 10.02.2018, 14:01:10
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


  1. namespace AppBundle\DataFixtures\ORM;
  2. namespace AppBundle\DataFixtures\ORM\Faker\Factory;


mam ustawic dwa namespace?

Nie wiem czy zostalem dobbrze zrozumainy ale prolem jest taki, że jak zrobie
$faker->
nie mam dostepu do metod klasy Faker

troszkę podobnie jak tu (4:30)
https://www.youtube.com/watch?v=pocWIEqAct0&t=1s

tylko jemu po dodaniu lini problem się rozwiązał.
  1. $faker = Faker\Factory::create();


Ten post edytował codeszan 10.02.2018, 14:02:04
Go to the top of the page
+Quote Post
Pyton_000
post 10.02.2018, 14:28:04
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  1. $faker = \Faker\Factory::create();
Go to the top of the page
+Quote Post
codeszan
post 10.02.2018, 14:57:49
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


OK! ten element działa ! tylko jaka jest różnica pomiedzy:

  1. $faker = \Faker\Factory::create();


a

  1. $faker = Faker\Factory::create();


chodzi o ścieżki, czy jak?

Pytanie numer dwa, dotyczace tego samego problemu.
Gdy teraz chce wygenerować/załadować fake dane do bazy czyli php bin/console doctrine:fixtures:load.
Mam komunikat.

Attepted to call an undefined method named "presist" of class "Doctrine\ORM\EntityManager" Did you mean to call "presist"?
Czy to wina tego ze mam symfony 3.4 a ten ktoś z tutoriala symfony 2.0? Jak się pozbyć tego błędu?

Ten post edytował codeszan 10.02.2018, 15:06:48
Go to the top of the page
+Quote Post
viking
post 10.02.2018, 15:08:45
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Przecież ci napisałem w pierwszym poście jaka jest ścieżka wyszukiwania. Jak dalej nie rozumiesz to wróć do podstaw namespace.


--------------------
Go to the top of the page
+Quote Post
codeszan
post 10.02.2018, 15:22:26
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


to mój pierwszy projekt i to jeszcze na podstawie tutoriala, prosił bym o wyrozumiałość
Go to the top of the page
+Quote Post
viking
post 10.02.2018, 15:23:36
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Mimo wszystko to zawsze od dokumentacji należy zaczynać naukę.


--------------------
Go to the top of the page
+Quote Post
codeszan
post 10.02.2018, 15:32:05
Post #9





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


cóż poradzić, że mi najlepiej wiedza wchodzi na realnych przykładach // to nie temat tej dyskusji
a do manuala również zaglądam.

czy odniesiesz się to w/w problemu?

Ten post edytował codeszan 10.02.2018, 15:32:31
Go to the top of the page
+Quote Post
viking
post 10.02.2018, 15:40:08
Post #10





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A widzisz tutaj gdziekolwiek metodę presist? https://github.com/doctrine/doctrine2/blob/...tityManager.php
Persist jak już. Zainstaluj sobie porządny edytor z podpowiadaniem składni.


--------------------
Go to the top of the page
+Quote Post
codeszan
post 10.02.2018, 15:47:22
Post #11





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

Ostrzeżenie: (0%)
-----


Gorzej, że to netbeans mi tak podpowiedział. Tak czy siak dziękuję.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 03:10