#laravel
#laravel
Вопрос:
У меня есть таблица сообщений с полем изображения внутри нее, и вот моя проблема. Мне нужно проверить, вставил ли пользователь одно изображение или нет, и если он это сделает, вставьте изображение с другими полями. На самом деле с моим кодом сначала вставьте сообщения (titulo, contenido y url) и, если изображение существует, вставьте изображение, но проблема в том, что это генерирует мне две записи, одну для полей сообщений (заголовок, содержимое и URL), а вторую с полем изображения.
Как это сделать, используя create
Appmodelospost::create($datosaInsertar);
вместо save()?
$posts= new Appmodelospost();
$posts->titulo= $request->titulo;
$posts->contenido= $request->contenido;
$posts->imagen= $request->imagen;
$posts->save();
КОНТРОЛЛЕР ХРАНИЛИЩА
public function store(Request $request)
{
/****************************CREACION POST*********************************/
$nombreimagen = 'mesteban_'.time().'.'.$request->file('imagen')->getClientOriginalExtension();
$datosaInsertar =
array(
'titulo' => $request->titulo,
'contenido' => $request->contenido,
'url' => str_slug($request->titulo),
);
$creandoPost = Appmodelospost::create($datosaInsertar);
Session::flash('estado','El post de nombre ..:: '.$request->titulo.' ::.. ha sido creado correctamente');
/********************FIN CREACION POST**************/
/************************CREACION IMAGEN**************/
$ruta = public_path('imaposts\');
if($nombreimagen):
$request->file('imagen')->move($ruta,$nombreimagen);
Appmodelospost::create(array('imagen'=> $nombreimagen));
endif;
/************************FIN CREACION IMAGEN*********************/
return redirect()->to('/admin/posts');
}
СООБЩЕНИЕ МОДЕЛИ
<?php
namespace Appmodelos;
use IlluminateDatabaseEloquentModel;
class post extends Model
{
protected $table = 'posts';
protected $fillable = ['titulo','contenido','imagen','url'];
}
Извините за мой ужасный английский
Ответ №1:
Что вам нужно сделать, довольно просто
Отредактируйте второй вызов функции create
$creandoPost->imagen=$nombreimagen;
$creadonPost->save();
$creadonPost из первого create содержит ссылку на операцию вставки, которой можно манипулировать. вы даже можете получить идентификатор вставки из этой переменной следующим образом
$creadonPost->id