laravel eloqnt基于条件的多选

iqjalb3h  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(439)

我找不到任何关于这个的信息,只有其他的口才,比如where函数。我试过一些东西,但没用。
因此,通过私奔,你可以做到:

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

根据我从其他地方得到的用户类型,我添加了一个select
例子:

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

        }

现在根据一些条件,我想在select中添加更多的字段。

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

但这会导致user对象只返回基于最后一个select('type')的列。是否有人知道如何使用多个选择或一个变通方法。即使给我指一些文档也不错,因为我什么都找不到。

jdg4fx2g

jdg4fx2g1#

可以使用addselect()

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

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

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

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

$user->select($select);

相关问题