【问题标题】:Laravel update query array to string conversionLaravel 更新查询数组到字符串的转换
【发布时间】:2016-02-09 22:46:21
【问题描述】:

我正在通过自定义工匠命令处理批处理作业

我有一个检查作业队列然后尝试更新作业列表的函数

$batch_check = DB::table('jobs_has_batch_job_queue')
        ->where('jobs_job_id',$this->job_id[0]->job_id)
        ->get();

    if(count($batch_check) < 1)
    {
        var_dump($this->job_id[0]->job_id);die; 
        $this->info('Job Complete');
        DB::table('jobs')
            ->where('jobs_job_id',$this->job_id[0]->job_id)
            ->update(['status' => 'complete']);
    }

$batch_check 返回一个空数组

我看到了

        $this->info('Job Complete');

在终端回显并

$this->job_id[0]->job_id

返回一个整数,我通过在批处理开始时运行以下命令得到这个值

        $this->job_id = DB::table('jobs')
            ->where('status','incomplete')
            ->limit(1)
            ->get();

所有文档都说将数组传递给 -> 更新

如果有人能发现我哪里出错了,那就太好了。

【问题讨论】:

    标签: php mysql arrays laravel


    【解决方案1】:

    詹姆斯·柯克比

    首先检查

    $this->job_id[0]->job_id

    如果它给你一个值,给你任何值然后检查数据库中是否存在jobid

     $exist = DB::table('jobs')
        ->where('jobs_job_id',$this->job_id[0]->job_id)->first();
    
    
    dd(exist);
    

    【讨论】:

    • 我知道 $this->job_id[0]->job_id 有一个值,因为我一开始批处理就获得了 job_id。 (用代码更新了上面的 qs)然后我从多对多表“jobs_has_batch_job_queue”中选择所有作业项,如果其中没有设置状态为完成,因此在运行批处理功能时它不会选择空作业再次
    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    相关资源
    最近更新 更多