我有一个帖子表,里面有一个图像字段,这是我的问题。我需要检查用户是否插入了一个图像,如果用户插入,则插入带有其他字段的图像。实际上使用我的代码,首先插入帖子(titulo,contenido y url),如果图像存在,插入图像,但问题是,这会生成两个记录,一个用于帖子字段(标题,内容和网址)第二个是图像区域。
如何使用创建
来做到这一点\App\modelos\post::create($datosaInsertar);
而不是save()?
$posts= new \App\modelos\post();
$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 = \App\modelos\post::create($datosaInsertar);
\Session::flash('estado','El post de nombre ..:: '.$request->titulo.' ::.. ha sido creado correctamente');
/********************FIN CREACION POST**************/
/************************CREACION IMAGEN**************/
$ruta = public_path('ima\posts\\');
if($nombreimagen):
$request->file('imagen')->move($ruta,$nombreimagen);
\App\modelos\post::create(array('imagen'=> $nombreimagen));
endif;
/************************FIN CREACION IMAGEN*********************/
return redirect()->to('/admin/posts');
}
MODEL POST
<?php
namespace App\modelos;
use Illuminate\Database\Eloquent\Model;
class post extends Model
{
protected $table = 'posts';
protected $fillable = ['titulo','contenido','imagen','url'];
}
对不起我糟糕的英语
答案 0 :(得分:0)
你需要做的很简单
编辑第二次调用以创建功能
$creandoPost->imagen=$nombreimagen;
$creadonPost->save();
第一次创建的$ creadonPost包含对insert操作的引用,可以操作甚至可以从这个变量中检索插入id
$creadonPost->id