Laravel Eloqunt基于条件的多项选择

时间:2018-09-02 19:56:12

标签: mysql iphone laravel

仅在使用其他Eloqunt东西(如where函数)时,我什么都找不到。我确实尝试了一些东西,但是没有用。

因此,使用Eloqunt,您可以执行以下操作:

$user = User::where('id', '=', $id); 

根据我从其他地方获得的用户类型,添加一个选择

示例:

switch($user_type) {
            case 10:
                $user->select('id',
                    'firstname',
                    'lastname',
                    'email',
                break;
            case 40:
                $user->select('id',
                    'firstname',
                    'lastname');
                    'email',
                    'someMoreFields', //etc
                break;

        }

现在基于某些条件,我想在选择的内容中添加更多字段。

if($someCondition) {
    $user->select('type');
}

但这导致用户对象可悲的是,它仅基于最后一个select('type')返回列。有谁知道如何使用多个选择或解决方法。甚至将我指向一些文档也会很好,因为我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

您可以使用addSelect()

if($someCondition) {
    $user->addSelect('type');
}

或者只是建立您在select()中使用的数组:

$select = ['id', 'firstname', 'lastname'];

if($someCondition) {
    $select[] = 'type';
}

$user->select($select);