Ich habe gerade angefangen zu lernen Symfony-Framework und ich bemerkte, dass fast jedes Mal gibt es einige sinnvolle Fehler in meinem Code (zum Beispiel verpasste ich einige "verwenden" -Anweisung) mein Server unerwartet beendet und Ich weiß nicht, wie ich herausfinden soll, was genau das verursacht hat.PHP-Server unerwartet beendet (Symfony)
Die meiste Zeit war ich in der Lage, es herauszufinden, aber jetzt habe ich gerade begonnen, Doctrine zu verwenden, und ich möchte ein Objekt in der Datenbank speichern, aber wenn ich den Code ausführen, wird mein Server beendet. Ich habe herausgefunden, dass die "flush()" Methode das Problem verursacht, aber jetzt bin ich fest, da ich keine weiteren Informationen über den Fehler bekomme. Ich habe also zwei Fragen - wie kann ich mehr Informationen über Fehler wie diesen bekommen und wie kann ich diesen Teil lösen?
Die Codes sind unter:
Der Controller
/* UserController.php */
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Entity\User;
use Symfony\Component\HttpFoundation\Response;
class UserController extends Controller
{
/**
* @Route("/user/test")
*/
public function testAction(Request $request)
{
$user = new User();
$user->setLogin("Test");
$user->setEmail("[email protected]");
$user->setPassword(hash("sha256", "test"));
$user->setJoined(date("Y-m-d H:i:s"));
$user->setActivationCode(NULL);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush(); /* The line that causes server to terminate! */
return new Response("Hello");
}
}
Und das Unternehmen
/* User.php (Entity) */
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="`user`")
*/
class User
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=128)
*/
private $email;
/**
* @ORM\Column(type="string", length=64)
*/
private $login;
/**
* @ORM\Column(type="string", length=64)
*/
private $password;
/**
* @ORM\Column(type="datetime")
*/
private $joined;
/**
* @ORM\Column(type="string", length=64, nullable=TRUE)
*/
private $activation_code;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set email
*
* @param string $email
*
* @return User
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set login
*
* @param string $login
*
* @return User
*/
public function setLogin($login)
{
$this->login = $login;
return $this;
}
/**
* Get login
*
* @return string
*/
public function getLogin()
{
return $this->login;
}
/**
* Set password
*
* @param string $password
*
* @return User
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set joined
*
* @param \DateTime $joined
*
* @return User
*/
public function setJoined($joined)
{
$this->joined = $joined;
return $this;
}
/**
* Get joined
*
* @return \DateTime
*/
public function getJoined()
{
return $this->joined;
}
/**
* Set activationCode
*
* @param string $activationCode
*
* @return User
*/
public function setActivationCode($activationCode)
{
$this->activation_code = $activationCode;
return $this;
}
/**
* Get activationCode
*
* @return string
*/
public function getActivationCode()
{
return $this->activation_code;
}
}
Prüfen Sie die Symfony-Protokolle zu ersetzen. Aktivieren Sie die PHP-Protokollierung, wenn sie nicht aktiviert ist, und überprüfen Sie das Protokoll, nachdem Sie den Fehler wiederholt haben. Wenn Sie den PHP-Server verwenden, richten Sie ihn stattdessen in Apache ein und Sie werden sich dort ebenfalls anmelden. – Shazbot
Thak du, das hat wirklich geholfen! –