PHP将模型作为函数参数传递

时间:2013-12-31 06:27:29

标签: php laravel arguments laravel-4

我正在使用Laravel框架,我有MyModel

namespace App\Models;

use Illuminate\Support\Facades\DB;

class MyModel extends \Eloquent {
//Some stuff goes here
}

我已经制作了这个对数组数据进行分组的功能。 效果很好。

public static function GroupBy($array, $key){  
        $grouped = array();
        foreach($array as $arr){
            if(!array_key_exists($arr->MyModel['id'], $grouped)){$grouped[$arr->MyModel['id']] = array();}
            array_push($grouped[$arr->MyModel['id']], $arr[$key]);
        }
        return $grouped;     
    }

现在我想通过传递我的分组模型来使这个函数更通用。在顺序中,我希望能够将MyModel['id']作为另一个参数传递。类似于:

$by = "MyModel['id']";

public static function GroupBy($by, $array, $key){  
            $grouped = array();
            foreach($array as $arr){
                if(!array_key_exists($arr->$by, $grouped)){$grouped[$arr->$by] = array();}
                array_push($grouped[$arr->$by], $arr[$key]);
            }
            return $grouped;     
        }

这最后一个解决方案不起作用。它返回一个数组,其中包含一个包含所有id

的数组

1 个答案:

答案 0 :(得分:0)

尝试

$arr->{$by}

而不是

$arr->$by

查看更多信息here