Я использую laravel с sqlite и не могу обновить базу данных из формы html - PullRequest
0 голосов
/ 13 апреля 2020

это код, который вызывает ошибку:

 auth()->user()->posts()->create($data);

это ошибка:

Общая ошибка: в 1 сообщении таблицы нет столбца с именем updated_at

, поэтому я тестировал auth(), user(), posts() один за другим, и dd(request()->all()); работает нормально, пока я не свяжусь с create (), и он не взорвется.

Что Я пробовал:

проверено public $timestamps = false; на модели. Также проверял const UPDATED_AT = null; и const CREATED_AT = null;.

, когда я сделал, чтобы была создана таблица сообщений:

>>> Post::all();
=> Illuminate\Database\Eloquent\Collection {#3085
     all: [
       App\Post {#3080
         id: "1",
         user_id: "1",
         caption: "test",
         image: "C:\Users\php613.tmp",
       },
       App\Post {#3084
         id: "2",
         user_id: "1",
         caption: "test2",
         image: "C:\Users\phpD3FE.tmp",
       },

, но затем, когда я попробовал $ user-> posts, он возвращает null:

>>> $user->posts;
=> Illuminate\Database\Eloquent\Collection {#3062
     all: [],
   }

Я новичок в laravel, и я застрял в этом целый день. Пожалуйста, помогите.

РЕДАКТИРОВАТЬ: вот как я определяю отношение Пользователь -> Пост:

protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    public function profile(){
      return $this->hasOne(Profile::class);
    }

    public function posts(){
      return $this->hasMany(Post::class);
    }

, и вот как выглядит миграция сообщений:

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->string('caption');
            $table->string('image');

            $table->index('user_id');
        });
    }

1 Ответ

0 голосов
/ 14 апреля 2020

Как и в сообщении об ошибке, в вашей таблице posts нет столбца с именем updated_at.

. Вы должны добавить столбцы меток времени (updated_at и created_at) в миграцию:

public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->string('caption');
            $table->string('image');
            $table->timestamps();

            $table->index('user_id');
        });
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...