我在Synfony2中有两个联合表:“查询”和“结果”。表查询保存用户的研究和表结果保存研究结果。我想在表格结果中设置相应的研究ID,但是现在当我将数据设置为结果时,它会在查询中创建很多行(并且不要只采用相应的id)。 这是我的代码更具有说服力:
我的实体查询:
class Query
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string\NotBlank()
*
* @ORM\Column(name="query", type="string", length=255)
*/
private $query;
我的实体结果:
class Result
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="author", type="string", length=100)
*/
private $author;
/**
* @var string
*
* @ORM\Column(name="url", type="string", length=255)
*/
private $url;
/**
* @var string
*
* @ORM\Column(name="website", type="string", length=100)
*/
private $website;
/**
* @var integer
*
* @ORM\OneToOne(targetEntity="Biblishare\BiblishareBundle\Entity\Query", cascade={"persist"})
* @ORM\JoinColumn(nullable=false)
*/
private $query;
我的控制员:
$html7 = $this->container->get('simple_html_dom');
$html7->load($result7);
// Create DOM from String
$html7 = str_get_html($result7);
// Find all article blocks
foreach($html7->find('.result-item-metadata') as $article7) {
if(isset($article7->find('.rw a', 0) ->plaintext))
{
$item7['title'] = $article7->find('.rw a', 0) ->plaintext;
}
elseif(isset($article7->find('.title a', 0) ->plaintext))
{
$item7['title'] = $article7->find('.title a', 0) ->plaintext;
}
else
{
}
if(isset($article7->find('.contrib a', 0) ->plaintext))
{
$item7['auteur'] = $article7->find('.contrib a', 0) ->plaintext;
}
else
{
$item7['auteur'] = '';
}
if(isset($article7->find('.rw a', 0) ->href))
{
$item7['url'] = 'http://www.jstor.org' . $article7->find('.rw a', 0) ->href;
}
elseif(isset($article7->find('.title a', 0) ->href))
{
$item7['url'] = 'http://www.jstor.org' . $article7->find('.title a', 0) ->href;
}
else
{
$item7['url'] = '';
}
$resultat7[] = '<div class="float_checkbox"><input class="result_scrap" type="checkbox" name="choix[]" value="<a href=\''.$item7['url'].'\' class=\'result_title\' target=\'_blank\'>' . $item7['title'] . '</a></span></br><span class=\'result_author\'> ' . $item7['auteur'] .'</span>" /><span></span></div><label for="choix">' . '<a href="'.$item7['url'].'" class="result_title" target="_blank">' . $item7['title'] . '</a></span></br><span class="result_author">' . ' ' . $item7['auteur'] .'</span></label>';
$result->setTitle($item7['title']);
$result->setAuthor($item7['auteur']);
$result->setUrl($item7['url']);
$result->setWebsite('jstor');
$result->setQuery($query);
$em->persist($result);
$em->flush();
$em->clear();
}
非常感谢