Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在静态函数中组合多个自_Php_Laravel_Eloquent - Fatal编程技术网

Php 在静态函数中组合多个自

Php 在静态函数中组合多个自,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个静态函数。我希望此函数根据$projectd的值是动态的。但是,当$projectd不为空时,如果我想同时执行这两项操作,如何修复此代码。多谢各位 当$projectd不为空时,我希望将第二个self添加到第一个self。当$projectId为空时,只返回第二个self public static function getDetailed($projectId = null){ if($projectId != null){ Self::leftjoin('de

我有一个静态函数。我希望此函数根据
$projectd
的值是动态的。但是,当
$projectd
不为空时,如果我想同时执行这两项操作,如何修复此代码。多谢各位

$projectd
不为空时,我希望将第二个self添加到第一个self。当
$projectId
为空时,只返回第二个self

public static function getDetailed($projectId = null){
    if($projectId != null){
        Self::leftjoin('device_project', 'device_project.device_id', '=', 'devices.id')
        ->where('device_project.project_id', '=', $projectId);
    }
    return Self::select('devices.id AS device_id','devices.battery_level')
    ->get();
}
你是说:

public static function getDetailed($projectId = null) {
    $device = Self::query();
   
    if ($projectId != null) {
        $device = Self::leftjoin('device_project', 'device_project.device_id', '=', 'devices.id')
                      ->where('device_project.project_id', '=', $projectId);
    }
    
    return $device->select('devices.id AS device_id','devices.battery_level')
                  ->get();
}

是的,我的意思是这样的,但是
select
方法应该晚于
leftjoin
方法。因为select方法中将有更多列。之后还有其他方法。有办法吗?