试图运行cron作业脚本时遇到“ ErrorException(E_NOTICE)试图获取非对象的属性”

时间:2019-05-22 07:11:27

标签: php laravel

我正在建立一个新网站,我有这个cron作业脚本来自动更新所有投资

错误似乎来自http控制器(行:$rLog['amount'] = round(($rep->invest->amount * $rep->invest->plan->percent) / 100,$basic->deci);)。

但是我不知道如何解决它,因为它对laravel来说是全新的

  if ($basic->repeat_status == 1){

            $repeats = Repeat::whereStatus(0)->get();
            foreach ($repeats as $rep){
                if ($rep->repeat_time < Carbon::now()){

                    $rLog['user_id'] = $rep->user_id;
                    $rLog['trx_id'] = strtoupper(Str::random(20));
                    $rLog['investment_id'] = $rep->investment_id;
                    $rLog['made_time'] = Carbon::now();
                    $rLog['amount'] = round(($rep->invest->amount * $rep->invest->plan->percent) / 100,$basic->deci);
                    RepeatLog::create($rLog);

                    $rep->total_repeat = $rep->total_repeat + 1;
                    $rep->made_time = Carbon::now();
                    $rep->repeat_time = Carbon::parse()->addHours($rep->invest->plan->compound->compound);
                    if ($rep->total_repeat == $rep->invest->plan->time){
                        $rep->status = 1;
                        $inv = Investment::findOrFail($rep->investment_id);
                        $inv->status = 1;
                        $inv->save();
                    }

                    $rep->save();

我希望cron作业脚本能够运行,并且结果应该是用户对原始投资的更新

2 个答案:

答案 0 :(得分:0)

我认为例外消息与cron-job工作无关, 似乎您的对象具有null属性。 检查并记录$ rep-> invest的值(如果为空) 然后检查$ rep-> invest-> plan的值以找出问题所在。

我认为这些事情之一可能为空。然后修复它们之后,您可能会 与cron-job有关的其他问题,但情况不同。好运气。

答案 1 :(得分:0)

您可以尝试$ reptime ['invest']等...

但是要将其变成对象,请使用以下代码:

json_encode($rep)

因为$ rep可能是一个数组。

祝你好运!