我想更新用户配置文件记录,但是在提交时,一个错误弹出了一个消息"从空值创建默认对象",当我删除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'(
不要以为我这么说是因为我想看起来更聪明,但是这些错误会使您的代码在您开始在团队中工作时立即下降。
回答。我相信,如果您修复所有这些内容,则代码应该可以正常工作。