【发布时间】:2017-02-12 13:55:42
【问题描述】:
我有两个表 Project 和 User 以及一个联接表 ProjectUser。我正在创建一个查询来选择某个 projectName 下的用户我不能这样做所以我创建了一个查询来根据项目表中的名称选择项目的 id
public function findName($projectName){
$query=$this->getEntityManager()
->createQuery("SELECT p.id FROM SocialProProjectBundle:Project p WHERE ``p.name='$projectName'");
return $query->getResult();
}
然后查询通过项目id选择用户
public function findProjectUsers($pId){
$query=$this->getEntityManager()
->createQuery(
"SELECT pu, u FROM SocialProProjectBundle:ProjectUser pu JOIN SocialProDefaultBundle: User u WHERE pu.project = '$pId'"
);
return $query->getResult();
}
但我总是得到注意:数组到字符串的转换!!!!!
这是我在控制器中调用它们的方式
$projectName = $request->get('projectName');
echo($projectName);
$projectId=$this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findName($projectName);
echo(count($projectId));
foreach($projectId as $pId) {
$pus = $this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findProjectUsers($pId);
}
$response = "<select class=\"select2_multiple form-control\" multiple=\"multiple\">";
foreach ($pus as $user) {//($i=0;$i<count($pus);$i++)
$name[]=array($user->getFirstName());
}
$response = $response . "<option>$name</option>";
$response = $response."</select> ";
return new Response($response);
//return($pus);
//call repository function
}
【问题讨论】:
-
每个foreach循环也不返回结果!!!当我在循环内创建一个对象并在它之外使用它时,我总是得到未定义的变量
-
$name是一个数组,您尝试显示它:<option>$name</option>。 -
@malcolm 我试过这样 foreach ($pus as $user) {//($i=0;$i
getFirstName(); $响应 = $响应。 ""; } 仍然是同样的问题 -
通知说错误在查询中
-
因为你的
$pId是一个对象或数组而不是字符串。