在更新用户配置文件记录时,从空值创建默认对象



我想更新用户配置文件记录,但是在提交时,一个错误弹出了一个消息"从空值创建默认对象",当我删除if语句时,并仅键入var_dump($ data(,它的运行顺利,显示所有数据,但是在存在命令的情况下,出现了错误。我不知道,为什么会发生任何帮助,

class home extends Model
{
    protected $table="homes";
    public static function upstore($data){
    $firstname=Input::get('fname');
    $lastname=Input::get('lname');
    $phone=Input::get('phone');
    $address=Input::get('address');
    $profileimage=Input::get('pimage');
    $password=Input::get('pswrd');
    $confirmpassword=Input::get('cpswrd');
      if( $firstname != '' ){
        $homes->fname    = $firstname;
      }
     if( $lastname != '' ){
        $homes->lname    = $lastname;
      }
     if( $phone != '' ){
        $homes->phone    = $phone;
      }
     if( $address != '' ){
        $homes->address    = $address;
      }
     if( $profileimage != '' ){
        $homes->pimage    = $profileimage;
      }
     if( $password != '' ){
        $homes->pswrd    = $password;
      }
     if( $confirmpassword != '' ){
        $homes->cpswrd    = $confirmpassword;
      }
         $homes->save();
     }
  }

它显示此错误

从空值创建默认对象

第一个if语句之后,您尝试将属性设置为一个值,但从未将$homes初始化为任何对象。

上方的if语句上方:

$homes = new home;

如我所见,您的模型中有@upstore方法。我可以在这里看到一些问题:

  • 您到底要使用哪些控制器?仅显示视图?控制器是将输入请求转换为输出请求的应用程序的一部分,因此,请将此逻辑切换到控制器中,因为如果您自己保留此约定,则在获得工作时会很容易地遇到一些麻烦。

  • if($ user,$ address ..( - 为什么不使用laravel验证器?=(

  • != ''的正确方法是:(请求:: has(field'(

不要以为我这么说是因为我想看起来更聪明,但是这些错误会使您的代码在您开始在团队中工作时立即下降。

回答。我相信,如果您修复所有这些内容,则代码应该可以正常工作。

最新更新