使用的版本: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);
}
}
当我转到表单创建新帖子时,我可以在之前添加图片 我实际存储帖子。这意味着当我存储图片时,我仍然没有关联它的帖子ID。
我的问题是:
我目前使用的解决方案是,当我转到表单创建新帖子时,会先创建一个空白的新帖子,然后在网址上传递id。它必须是一种更好的方法。
答案 0 :(得分:0)
你可以试试这个
首先在用户访问创建帖子页面时创建表单(正如您所做的那样)。
假设这是显示创建帖子视图的功能
public function showCreatePost()
{
$post = Post::create(['field_name' => '', // put your attributes]);
// pass other data as well if you want.
return view('your_create_view',compact('postId',$postId));
}
更改你的postid图像上传路径。例如
Route::post('post/image/{postId}','SomeController@somefunction');
创建一条路线来编辑帖子并用它来编辑将有帖子ID的帖子。
Route::post('post/edit/{postId}','SomeController@someOtherfunction');
现在使用这两个路线作为表单操作,您可以编辑帖子并上传图像。下面的路线示例
在网址中显示ID并不是一个好主意。所以通过这种方式你可以试着告诉我你是否遇到任何问题。