【问题标题】:why show this error: Invalid argument supplied for foreach()为什么显示此错误:为 foreach() 提供的参数无效
【发布时间】:2020-07-21 16:36:54
【问题描述】:

forech 有问题吗?

发送邮件的代码是正确的,我只是想从.email列中调用搜索结果数据,因为该行总是有结果,有没有其他方法可以做到这一点?

(1/1) 错误异常 为 foreach() 提供的参数无效

$update = encomendas::
        join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
        ->where('encomendas_pagamentos.entidade', $ENTIDADE)
        ->where('encomendas_pagamentos.referencia', $REFERENCIA)
        ->where('encomendas_pagamentos.valor', $VALOR)
        ->update(['encomendas.estado' => 2]);


    //$email=$update->email;


    foreach ($update as $update) {

        Mail::send('emails.email-contacto', ['entidade' => $ENTIDADE,
        ], function ($messagem) use ($update) {

            $messagem->from('xxx@xxxxx.pt', 'xxxxxx');

            $messagem->to($update->email)->subject('xxxxx.pt notificação de pagamento');

        });

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您的问题是查询中 update() 操作的结果返回了成功更新的行数。我不知道有什么方法可以更新一组记录并在同一命令中检索结果集合。

    你可以这样解决你的问题:

    encomendas::join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
              ->where('encomendas_pagamentos.entidade', $ENTIDADE)
              ->where('encomendas_pagamentos.referencia', $REFERENCIA)
              ->where('encomendas_pagamentos.valor', $VALOR)
              ->update(['encomendas.estado' => 2]);
    
    $update = encomendas::
            join('encomendas_pagamentos', 'encomendas.id', '=', 'encomendas_pagamentos.id_encomenda')
            ->where('encomendas_pagamentos.entidade', $ENTIDADE)
            ->where('encomendas_pagamentos.referencia', $REFERENCIA)
            ->where('encomendas_pagamentos.valor', $VALOR)
            ->select('encomendas.*')
            ->get();
    

    【讨论】:

      猜你喜欢
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多