Используемая версия: Laravel 5.4Последующие отношения
У нас есть сообщение, и у этого сообщения может быть несколько связанных с ним изображений. Мы используем контроллер для хранения сообщения, а другой - для хранения изображений.
Мы установили отношения в модели, как так:
class Post extends Model
{
public function pictures()
{
return $this->hasMany(Picture::class);
}
}
class Picture extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
Когда я иду в форму, чтобы создать новый пост, я могу добавить фотографии на этот пост перед тем я на самом деле сохранить пост. Это означает, что когда я сохраняю изображение, у меня до сих пор нет идентификатора сообщения, чтобы связать его.
Мои вопросы:
- Использование только PHP, есть чистый способ связать изображения к посту до или после?
Решение, которое я использую в настоящее время, заключается в том, что когда я перехожу к форме для создания нового сообщения, перед созданием создается новый новый пост, и я передаю идентификатор на URL. Это должен быть лучший способ сделать это.
Что вы хотите создать, сначала, а затем изображение? – Vikash
Изображения являются частью формы создания сообщения. Поэтому, когда пользователь добавляет свои фотографии, фактическое сообщение еще не создано. Связь должна выполняться при сохранении сообщения. – Ruben
Тогда также. из той же формы вы можете создать пост сначала, а затем загрузить изображение в ту же функцию контроллера. если вы беспокоитесь о том, что в каком-то редком случае сообщение создалось, а фотографии не загружались, вы можете использовать транзакцию запросов laravel или вы можете собрать идентификатор сообщения и удалить в случае сбоя. вы можете использовать блок catch try. – Vikash