已关闭,此问题需要details or clarity,目前不接受回答。
**想要改进此问题吗?**通过editing this post添加详细信息并澄清问题。
上个月关门了。
Improve this question
我是新的symfony,我得到了这个错误“警告:试图读取属性“类型”的null”我不知道如何修复它,
've tried clearing the cache checking the typoes
这一切都没有解决它这里是我的控制器代码
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\UsersRepository;
use App\Entity\Users;
use App\Form\UserType;
use Symfony\Component\Intl\Countries;
class UserFormController extends AbstractController
{
private $entityManager;
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
private function getCountries()
{
return array_flip(Countries::getNames()); // Use Countries class to get country names
}
#[Route('/user', name: 'form_index')]
public function index(UsersRepository $userRepository): Response
{
$users = $userRepository->findAll(); // Renamed $user to $users to represent a collection
return $this->render('user_form/index.html.twig', [
'users' => $users, // Updated key name to be more descriptive
]);
}
#[Route('/user/create', name: 'user_create')]
public function create(Request $request): Response
{
$user = new Users();
$form = $this->createForm(UserType::class, $user, [
'country' => $this->getCountries(),
]);
return $this->render('user/create.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/user/store', name: 'user_store')]
public function store(Request $request): Response
{
$user = new Users();
$form = $this->createForm(UserType::class, $user, [
'country' => $this->getCountries(),
]);
if ($form->isSubmitted() && $form->isValid()) { // Removed redundant request method check
$this->entityManager->persist($user);
$this->entityManager->flush();
return $this->redirectToRoute('form_success');
}
return $this->render('user_form/create.html.twig', [
'form' => $form->createView(),
]);
}
#[Route('/user/edit/{id}', name: 'form_edit')]
public function edit(Request $request, int $id, UsersRepository $userRepository): Response
{
$user = $userRepository->find($id);
if (!$user) {
throw $this->createNotFoundException('User not found');
}
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->entityManager->flush();
return $this->redirectToRoute('form_success');
}
return $this->render('user_form/edit.html.twig', [
'form' => $form->createView(),
'user' => $user,
]);
}
#[Route('/user/delete/{id}', name: 'form_delete')]
public function delete(int $id, UsersRepository $userRepository, EntityManagerInterface $entityManager): Response
{
$user = $userRepository->find($id);
在此处键入
if (!$user) {
throw $this->createNotFoundException('User not found');
}
$entityManager->remove($user);
$entityManager->flush();
return $this->redirectToRoute('form_success');
}
#[Route('/user', name: 'form_success')]
public function success(): Response
{
return $this->render('user_form/index.html.twig');
}
}
type her<?php
namespace App\Form;
use App\Entity\Users;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('name', null, [
'label' => 'Prénom',
])
->add('surname', null, [
'label' => 'Nom',
])
->add('dateOfBirth', DateType::class, [
'widget' => 'single_text',
'html5' => true,
'format' => 'yyyy-MM-dd',
'label' => 'Date de naissance',
])
->add('role', null, [
'label' => 'Role',
])
->add('country', ChoiceType::class, [
'choices' => $options['country'],
'label' => 'Pays',
])
->add('region', null, [
'label' => 'Région',
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Users::class,
'country' => [],
]);
}
}
create.html.twig
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Create User</h1>
<form method="POST" action="{{ path('user_store') }}">
{{ form_widget(form) }}
<button type="submit" class="btn btn-primary">Creation</button>
</form>
</body>
</html>
我想知道这个错误的原因以及如何修复它。我已经尝试清除该高速缓存并检查打字错误
1条答案
按热度按时间uujelgoq1#
我修复了我的错误,当我试图使用@assert来验证我的数据时发生了错误,这里是更正的格式
`/**