这是我第一次使用laravel框架,到目前为止它的结构比我使用的其他框架好。但这些让我感到震惊,我已经调试了一段时间。 我有一个Post模型,有子模型Post Images和Post Location。我试图将数据插入到Post Images中,然后将保存数据的id保存到基本Model Post中,这样我就可以建立关系这些是我的代码 发布模型
class Post extends Model {
protected $table = 'posts';
public $primaryKey = 'id';
public function user(){
return $this->belongsTo('App\User');
}
public function post_image(){
return $this->belongsTo('App\PostImage');
}
public function location(){
return $this->belongsTo('App\PostLocation');
}
}
从创建帖子迁移
public function up(){
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('user_id')->unsigned();
$table->integer('location_id')->unsigned();
$table->integer('post_image_id')->unsigned();
$table->timestamps();
});
基本模型关系是
class PostImage extends Model{
protected $table = 'post_images';
public $primaryKey = 'id';
public function post(){
return $this->belongsTo('App\Post');
}
}
class PostLocation extends Model{
protected $table = 'location';
public $primaryKey = 'id';
public function post(){
return $this->belongsTo('App\Location');
}
}
在Post Controller存储方法中。我首先保存帖子图像,然后尝试引用插入的表ID作为外键,并在一段时间后发生错误我尝试不同的组合它不起作用。这些图像可以保存,但参考剂量可以正常工作
发布控制器商店代码
public function store(Request $request){
$this->validate($request, [
// Validation work here
]);
// Function to save images work perfectly and return the an array containg image
$images = $this->uploadAssetImages($request);
$post= new Post();
$image = new PostImage();
$image->image1 = $images[0];
$image->image2 = $images[1];
$image->image3 = $images[2];
$image->save();//$image->id()
//I have try these: $image_id = Response::json(array('success' => true, 'last_insert_id' => $image->id), 200);
$asset->description = $request->input('description');
$asset->user_id = auth()->user()->id;
$asset->post_image()->save($image);// After debuging error is found here
$asset->save();
希望这些可以解决吗?