模型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
的第一行?
答案 0 :(得分:1)
public function ListPersonTypes()
{
$data=$this->getPersonTypes;
$list=array();
foreach ($data as $value){
$list[]=$value['PersonTypeName'];
return implode(',',$list);
}
}
应该做的伎俩。
答案 1 :(得分:1)
$this->getPersonTypes()->all();
使用它
这个$this->personTypes
Yii2(gii)默认情况下创建此函数,以便像模型的属性一样访问并返回为arrray。
此函数无法创建以作为函数文字进行访问。
试试此代码
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);
}
答案 2 :(得分:0)
似乎你的代码中只运行了一次迭代...当你在foreach中调用一个返回时。
public function ListPersonTypes()
{
$data = $this->getPersonTypes()->all();
$list = array();
foreach ($data as $value) {
$list[] = $value['PersonTypeName'];
}
return implode(', ', $list);
}