На моем веб-приложение, с доктриной, я вдруг получаю сообщение об ошибке, как показано ниже:ошибка памяти Доктрина
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in {path_to_doctrine}/Doctrine/DBAL/Types/DateTimeType.php on line 53
я не появлялся раньше. Кроме того, FYI, раздел, стоящий перед этой проблемой, содержит несколько тысяч строк данных и имеет отношения с другими объектами. Я просто не могу понять, в чем проблема с памятью.
Еще одна интересная вещь: ошибка не выбрасывается из «DateTimeType.php» всегда, что-то вроде того, что я получил ее на «UnitOfwork.php» и некоторых других файлах.
Может кто-нибудь помочь мне, что я могу сделать, чтобы разрешить эту ошибку, пожалуйста?
My environment is: Ubuntu, Amazon EC2 micro instance, сервер базы данных RDS, PHP 5.3.
Code For data retrieval:
/**
* Return list of recors according to given start index and length
* @param type $start the start index number for the city list
* @param type $length Determines how many records to fetch
* @return type
*/
function get_by_range($start=1,$length=10,$criteria = array(),$orderBy = NULL)
{
try
{
return $this->em->getRepository($this->entity)->findBy($criteria, $orderBy, $length, $start);
}
catch(Exception $err)
{
log_message("error", $err->getMessage(), false);
print_r($err->getMessage());exit();
return NULL;
}
}
она вызывается для заполнения основного списка:
$this->data["joblist"] = $this->jobmodel->get_by_range((($page-1)*$pagingConfig['per_page']),$pagingConfig['per_page'],array("site"=> "test"), array('postTime' => 'DESC'));
Entity Класс:
use Doctrine\ORM\Mapping as ORM;
/**
* PdJobs
*
* @Table(name="pd_jobs")
* @Entity
*/
class PdJobs
{
/**
* @var integer $id
*
* @Column(name="id", type="bigint", nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string $projectId
*
* @Column(name="project_id", type="string", nullable=false, unique=true)
*/
private $projectId;
/**
* @var string $title
*
* @Column(name="title", type="string", length=255, nullable=false)
*/
private $title;
/**
* @var string $url
*
* @Column(name="url", type="string", length=255, nullable=false)
*/
private $url;
/**
* @var string $shortDescription
*
* @Column(name="short_description", type="string", length=255, nullable=false)
*/
private $shortDescription;
/**
* @var string $site
*
* @Column(name="site", type="string", length=255, nullable=false)
*/
private $site;
/**
* @var datetime $postTime
*
* @Column(name="post_time", type="datetime", nullable=false)
*/
private $postTime;
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ManyToMany(targetEntity="PdExpertises", inversedBy="jobs", fetch="EXTRA_LAZY")
* @JoinTable(name="pd_jobs_expertises")
*/
private $expertises;
/**
* @var string $type
*
* @Column(name="type", type="string", nullable=true)
*/
private $type;
/**
* @var string $description
*
* @Column(name="description", type="string", length=1000, nullable=true)
*/
private $description;
/**
* @var string $budget
*
* @Column(name="budget", type="string", length=255, nullable=true)
*/
private $budget;
/**
* @var string $skill
*
* @Column(name="skill", type="string", length=255, nullable=true)
*/
private $skill;
/**
* @var integer $candidates
*
* @Column(name="candidates", type="integer", options={"default":0},nullable=true)
*/
private $candidates;
/**
* @var string $averageAmount
*
* @Column(name="average_amount", type="string", length=255, nullable=true)
*/
private $averageAmount;
/**
* @var datetime $startDate
*
* @Column(name="start_date", type="date", nullable=true)
*/
private $startDate;
/**
* @var datetime $endDate
*
* @Column(name="end_date", type="date", nullable=true)
*/
private $endDate;
/**
* @var string $category
*
* @Column(name="category", type="string", length=255, nullable=true)
*/
private $category;/**
* @var string $subCategory
*
* @Column(name="sub_category", type="string", length=255, nullable=true)
*/
private $subCategory;
/**
* @var string $clientCountry
*
* @Column(name="client_country", type="string", length=255, nullable=true)
*/
private $clientCountry;
/**
* @var string $clientRating
*
* @Column(name="client_rating", type="string", length=255, nullable=true)
*/
private $clientRating;
на страницу не более 25 строк извлекаются. Значит, я думал, может быть, это не проблема? Кроме того, у меня есть «fetch =« EXTRA_LAZY »в случае отношений с внешним ключом. Итак, я надеюсь, что эта часть тоже безопасна?
Однако, я думал о другом, мой первичный ключевой столбец« id »имеет тип« целое число » ', это может быть проблемой? Однако ошибка не указывает на эту ошибку. Кроме того, просто для уточнения, у меня есть около 30k данных.
Сколько строк вы извлечение в один присест? Можем ли мы увидеть соответствующий блок кода? – halfer