【问题标题】:error: {type: "ErrorException", message: "Creating default object from empty value"} in Laravel 4.2错误:{类型:“ErrorException”,消息:“从空值创建默认对象”}在 Laravel 4.2
【发布时间】:2015-04-15 09:30:06
【问题描述】:

当我运行下面给出的代码时,我收到以下错误

error: {type: "ErrorException", message: "Creating default object from 空值”}

在此$mandate->user_id = $current_user; 行。 我试过this 和this 但仍然显示相同的错误。感谢您的任何建议。

public function postProcess()
{
    $id = Input::get('id');
    $button_id = Input::get('button_id');
    $remarks = Input::get('remarks');
    $current_user = Sentry::getUser()->id;
    $mandate = new Mandate();
    $mandate = Mandate::find($id);

    $mandate->user_id = $current_user;
    $mandate->remarks = $remarks;

    $eventlog = new Eventlog();
    $eventlog->user_id = $current_user;
    $eventlog->mandate_id = $id;

    if($button_id == "reject"){
      $rejectreason_id = Input::get('rejectreason_id');
      $rejectreason = Input::get('rejectreason');
      $mandate->mandate_status = "Rejected";
      $mandate->rejectreason_id = $rejectreason_id;
      $eventlog->event = "Rejected: ".$rejectreason;   
    }else if($button_id == "verify") {
      $mandate->mandate_status = "Awaiting approval";
      $eventlog->event = "Verified";
    }
    else if($button_id == "approve") {
      $mandate->mandate_status = "Approved";
      $eventlog->event = "Approved";
    }

    $eventlog->save();
    $mandate->save();
    $this->generateXML($id,$rejectreason);
}

EDIT 1(由 Suresh Kamrushi 建议)

public function postProcess()
{
    $id = Input::get('id');
    $button_id = Input::get('button_id');
    $remarks = Input::get('remarks');
    $current_user = Sentry::getUser()->id;
    $rejectreason = "";
    $mandate = new Mandate();
    $mandate = Mandate::where('id',$id)->first();

    if(is_object($mandate)) {
      file_put_contents('log.txt', print_r("no mandate", true));
      $mandate->user_id = $current_user;
      $mandate->remarks = $remarks;
      $eventlog = new Eventlog();
      $eventlog->user_id = $current_user;
      $eventlog->mandate_id = $id;

      if($button_id == "reject"){
        $rejectreason_id = Input::get('rejectreason_id');
        $rejectreason = Input::get('rejectreason');
        $mandate->mandate_status = "Rejected";
        $mandate->rejectreason_id = $rejectreason_id;
        $eventlog->event = "Rejected: ".$rejectreason;
        //$this->generateXML($id,$rejectreason);   
      }else if($button_id == "verify") {
        $mandate->mandate_status = "Awaiting approval";
        $eventlog->event = "Verified";
      }
      else if($button_id == "approve") {
        $mandate->mandate_status = "Approved";
        $eventlog->event = "Approved";
        //$this->generateXML($id,$rejectreason);
      }

      $eventlog->save();
      $mandate->save();
    }
}

现在错误消失了,但 if 语句中的代码现在不起作用。

【问题讨论】:

    标签: php laravel laravel-4 laravel-5


    【解决方案1】:

    试试这样的:

    $mandate = Mandate::find($id);
    if(is_object($mandate)) {
      $mandate->user_id = $current_user;
      $mandate->remarks = $remarks;
    }
    

    【讨论】:

    • 错误消失了,但 'if' 语句中的代码不起作用。如 EDIT1 中给出的
    • @NithilGeorge:您对“Mandate::find($id);”有疑问检查带有 find() 的任务类是否可用。因为 $mandate 没有启动并且它没有进入 if 条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2016-08-18
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多