Ошибка PHP: вызов неопределенного метода stdClass::save() в коде Psy Shell в строке 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: вызов неопределенного метода stdClass::save() в коде Psy Shell в строке 1

Здесь мой профиль.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();
        });
    }

заранее спасибо


person Mourad Mohammed Benosman    schedule 03.01.2020    source источник


Ответы (1)


Проблема здесь в том, что вы определяете переменную с заглавной буквы:

$Profile=new \App\Profile(); 

и позже вы используете его с маленькой буквы

$profile->title='Premier Titre'

Так что, вероятно, под капотом создается новый объект stdClass, и, очевидно, у него нет метода save. Вы также получаете предупреждение об этом:

Предупреждение PHP: создание объекта по умолчанию из пустого значения в коде Psy Shell в строке 1

в котором говорится, что новый объект создан

Поэтому убедитесь, что вы изменили

$Profile=new \App\Profile(); 

в

$profile=new \App\Profile(); 

заставить его работать

person Marcin Nabiałek    schedule 03.01.2020