问题描述
我正在用symfony 5运行我的应用程序。
我无法在Fixture脚本中获取任何现有数据,但无法弄清楚原因...方法 get_all_ids 应该返回我实体的所有可用ID ,但是我总是有一个空数组(但是该方法正在控制器上工作)
这是我的方法(RestaurantRepository.PHP):
public function get_all_ids() {
$all = $this->findAll();
return array_map( function(Restaurant $e) {
return $e->getId();
},$all);
}
这是我的固定装置
<?PHP
namespace App\DataFixtures;
use App\Entity\Rate;
use App\Entity\Restaurant;
use App\Entity\User;
use App\Repository\RestaurantRepository;
use App\Repository\UserRepository;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ObjectManager;
use Faker;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class RateFixtures extends Fixture implements FixtureGroupInterface,ContainerAwareInterface
{
private $container;
private $userRepository;
public function __construct(UserRepository $userRepository)
{
$this->userRepository = $userRepository;
}
public function load(ObjectManager $manager)
{
/** @var UserRepository $user_repository */
$user_repository = $manager->getRepository(User::class);
$id_users = $this->userRepository->get_all_ids();
dd($id_users);
/** @var RestaurantRepository $restaurant_repository */
$restaurant_repository = $manager->getRepository(Restaurant::class);
$id_restaurants = $restaurant_repository->get_all_ids();
dd($user_repository);
$faker = Faker\Factory::create('fr_FR');
for ($u = 0; $u < 10; $u++) {
$rate = new Rate();
$rate->setValue($faker->numberBetween(0,10));
$rate->setIdUser(array_rand($id_users));
$rate->setIdRestaurant(array_rand($id_restaurants));
$manager->persist($rate);
}
$manager->flush();
}
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
public static function getGroups(): array
{
return ['rates'];
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)