это код, который вызывает ошибку:
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');
});
}