【问题标题】:PHP Laravel Select QueryPHP Laravel 选择查询
【发布时间】:2021-11-05 02:14:38
【问题描述】:
foreach ($task as $task1) {
    $parent=\DB::select('select parent_wbs_id from projwbs where wbs_id= "$task1->wbs_id"');        
            foreach ($parent as $parent1){
            \DB::table('tasks')->insert([
            ['id'=>$task1->task_id, 'text'=>$task1->task_name, 'start_date'=>$task1->act_start_date, 
                'duration'=>round($days), 'parent'=>$parent1->parent_wbs_id,'progress'=>1.0]
               ]);
            }
            
            
        }

我的父选择查询有 where 子句,它在其中检查 wbs_id 来自 每个循环 任务并获取 parent_wbs_id 相应地。

现在,问题是——它没有进入我的内部父循环,如果它返回一个空行给$parent,我会卡住。 p>

我尝试显示 $parent。它提示我无效数组到字符串转换的错误

对不起,我刚刚开始 PHP laravel 项目,我是这方面的初学者。

【问题讨论】:

    标签: php laravel select null


    【解决方案1】:

    将您的代码更改为:

    foreach ($task as $task1) {
        // $parent=\DB::select('select parent_wbs_id from projwbs where wbs_id= "$task1->wbs_id"'); 
    
        $parent = \DB::table('projwbs')
                      ->where('wbs_id', $task1->wbs_id)
                      ->select('parent_wbs_id')
                      ->get();
    
        // $parent should contains all parent_wbs_id from table projwbs where wbs_id is equal to $task1->wbs_id
    }
    

    您的第一个查询中的主要错误是您最后没有使用get,因此您正在遍历查询构建器。

    另外,你不能像以前那样使用select,我按照 Laravel 期望的方式重写了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多