Я пытаюсь передать идентификатор из запроса из одной таблицы базы данных в другую таблицу, к которой относится.
Но, поскольку они связаны, я должен передать его как экземпляр сущности (класса), к которой относится.
Это ошибка, которую я получил:
Аргумент 1, переданный в App \ Entity \ KeywordRating :: setKeywordId (), должен быть экземпляром App \ Entity \ Keywords, с целым числом, вызванным в C: \ xampp \ htdocs \ ratingAPI \ src \ Service \ KeywordRatingService.php в строке 26
Это мой код:
public function insertRating($params, ObjectManager $manager, KeywordsRepository $keyRep, ProvidersRepository $provRep)
{
$keywordId = $keyRep->checkKeyword(strtolower($params['keyword']))->getId();
$providerId = $provRep->checkProvider($params['provider'])->getId();
$rating = new KeywordRating();
$rating->setKeywordId(<Keywords instance> $keywordId);
$rating->setProviderId(<Providers instance> $providerId);
if($params['attr'] === 'rocks')
{
$rating->setRocksRating($params['rating']);
$rating->setSucksRating(0);
} else
{
$rating->setRocksRating(0);
$rating->setSucksRating($params['rating']);
}
$rating->setRocksVotes(10);
$rating->setSucksVotes(8);
$rating->setSumVotes(18);
$rating->setScore(2.50);
$manager->persist($rating);
$manager->flush();
}
Это запрос sql:
public function checkKeyword($keyword)
{
return $this->createQueryBuilder('k')
->where('k.keyword_name = :val')
->setParameter('val', $keyword)
->getQuery()
->getOneOrNullResult();
}
checkProvider () одинаков, только разные параметры.
Как мне это сделать?