2013-05-30 43 views
0

我有一個帶有這些名稱的10個字段的表:field1,field2等... 我想檢索一個註冊表(使用雄辯和 - > first())。 當我有對象(可以說$用戶),我可以在控制器中做這樣的事情嗎?

for ($i=1; $i<=10; $i++) { 
    $field_name = 'field'.$i; 
    if ($user->$field_name == 1) { 
     // do something 
    } 
} 

或者我必須手動調用它們?

if ($user->field1 == 1) { 
     // do something 
    } 
    if ($user->field2 == 1) { 
     // do something 
    } 
    .... 
+1

你試過了嗎?因爲[這是可能的](http://stackoverflow.com/questions/804850/get-php-class-property-by-string)。 – vstm

回答

1

正如@vstm說,這是可能的,這裏是你能做什麼兩個工作例子:

foreach($data as $key => $row) { 
    $r[$row->$id] = ($abbreviation ? $row->$abbreviation.' - ' : ''). ($method ? $row->$name() : $row->$name); 
} 

if(isset($line['childs'])) 
{ 
    $childs = $model->$line['childs']()->get(['id'])->toArray(); 

    if(count($childs)) 
    { 
     foreach($childs as $value) 
     { 
      $selected[] = $value['id']; 
     } 
    } 
    else 
    { 
     $selected = null;      
    } 


    $line['selected'] = $selected; 
}