通过雄辩的方法作为参数

时间:2017-11-14 11:45:17

标签: php laravel laravel-eloquent

我很难将eloquent方法作为参数传递。

这是我的方法,

public function getPayment($paymentId, $eloquentMethod)
{
    if (!empty($orderId)) {
        return DB::connection('my_db')->table('payment')->{$eloquentMethod}();
    }
    return null;
}

如果我通过$this->getPayment('1', 'get')

,它会正常工作

但如果我通过$this->getPayment('1', 'pluck("payment_id")')

,它就无效了

提前致谢。

1 个答案:

答案 0 :(得分:1)

$eloquentMethod你有多少可能性? 如果有许多可能性,例如“获取”,“先”等等,那么你可以制作:

public function getPayment($paymentId, $eloquentMethod = 'get()')
{
    if (!empty($orderId)) {
        switch ($eloquentMethod) {
            case "get":
                return DB::connection('my_db')->table('payment')->get();
                break;
            case "first":
                return DB::connection('my_db')->table('payment')->first();
                break;
            case default:
                return null;
        }
    }
}