1

我是 Laravel 的新手,我正在使用 tinker 创建记录:

$Profile=new \App\Profile();
=> App\Profile {#3038}
>>> $profile->title='Premier Titre'
PHP Warning:  Creating default object from empty value in Psy Shell code on line 1
>>> $profile->title='Premier Titre';
=> "Premier Titre"
>>> $profile->description='Description';
=> "Description"
>>> $profile->user_id=1;
=> 1
>>> $profile->save()
PH

我有以下错误:PHP 错误:在第 1 行的 Psy Shell 代码中调用未定义的方法 stdClass::save()

这是我的profile.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    public function user()

{
    return $this->belongsTo(User::class );
}
}

这是我的迁移代码:

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('surname')->unique();
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

提前致谢

4

1 回答 1

4

这里的问题是你用大写字母定义变量:

$Profile=new \App\Profile(); 

后来你用小写字母

$profile->title='Premier Titre'

所以可能在幕后创建了新的 stdClass 对象,显然它没有save方法。您还会收到关于此的警告:

PHP 警告:从第 1 行 Psy Shell 代码中的空值创建默认对象

表示创建了新对象

所以确保你改变

$Profile=new \App\Profile(); 

进入

$profile=new \App\Profile(); 

让它工作

于 2020-01-03T19:04:32.463 回答