Php “Yii2”;“有很多”;关系只返回第一行
模型Php “Yii2”;“有很多”;关系只返回第一行,php,yii2,Php,Yii2,模型Person与PersonType有很多关系: public function getPersonTypes() { return $this->hasMany(PersonType::className(), ['PersonID' => 'PersonID']); } 我需要在视图中显示所有PersonType的相关值 模范人物: public function ListPersonTypes() { $data = $thi
Person
与PersonType
有很多关系:
public function getPersonTypes()
{
return $this->hasMany(PersonType::className(), ['PersonID' => 'PersonID']);
}
我需要在视图中显示所有PersonType的相关值
模范人物:
public function ListPersonTypes()
{
$data = $this->getPersonTypes()->all();
$list = array();
foreach ($data as $value) {
$list[] = $value['PersonTypeName'];
return implode(', ', $list);
}
}
但是,为什么ListPersonTypes()
只返回表PersonType
中的第一行
public function ListPersonTypes()
{
$data=$this->getPersonTypes;
$list=array();
foreach ($data as $value){
$list[]=$value['PersonTypeName'];
return implode(',',$list);
}
}
我们应该做到这一点
应该做到这一点。在代码中,您只运行了一次迭代。。。当你在foreach中调用return时
public function ListPersonTypes()
{
$data = $this->getPersonTypes()->all();
$list = array();
foreach ($data as $value) {
$list[] = $value['PersonTypeName'];
}
return implode(', ', $list);
}
似乎在你的代码中你只运行了一次迭代。。。当你在foreach中调用return时
public function ListPersonTypes()
{
$data = $this->getPersonTypes()->all();
$list = array();
foreach ($data as $value) {
$list[] = $value['PersonTypeName'];
}
return implode(', ', $list);
}
- 您没有正确使用它
$this->getPersonTypes()->all()代码>使用 this
$this->personTypes
- 从循环中写出返回值
public function ListPersonTypes()
{
// this go to function getPersonTypes and return a array of them
$data=$this->personTypes;
$list=array();
foreach ($data as $value){
$list[]=$value['PersonTypeName'];
}
return implode(',',$list);
}
- 您没有正确使用它
$this->getPersonTypes()->all()代码>使用 this
$this->personTypes
- 从循环中写出返回值
public function ListPersonTypes()
{
// this go to function getPersonTypes and return a array of them
$data=$this->personTypes;
$list=array();
foreach ($data as $value){
$list[]=$value['PersonTypeName'];
}
return implode(',',$list);
}