Php 如何将图像位置从控制器传递到模型方法以存储在db Laravel上
我有一个控制器Php 如何将图像位置从控制器传递到模型方法以存储在db Laravel上,php,database,laravel,authentication,Php,Database,Laravel,Authentication,我有一个控制器store()方法,它从表单中获取数据,并通过一个名为publish()的方法将数据传递给用户模型,该方法在博客上发布文章。我的问题是,当我获得图像文件位置时,我无法将其传递给存储在用户模型上的publish方法。我试过按要求传球,谷歌搜索,但运气不佳 Store()方法: public function store(Request $request){ $this->validate($request, [ 'title' =&
store()
方法,它从表单中获取数据,并通过一个名为publish()
的方法将数据传递给用户模型,该方法在博客上发布文章。我的问题是,当我获得图像文件位置时,我无法将其传递给存储在用户模型上的publish方法。我试过按要求传球,谷歌搜索,但运气不佳
Store()
方法:
public function store(Request $request){
$this->validate($request, [
'title' =>'required|max:48',
'body'=>'required',
'image'=>'required'
]);
$post = new Post;
$destination ='uploads';
$image = $request->file('image');
$filename = $image->getClientOriginalName();
$image->move($destination, $filename);
$location=$destination.'/'.$filename;
auth()->user()->publish(
new post(request(['title','body', $location] ))
);
return redirect('/blog');
}
}
并在用户模型上发布方法:
public function publish(Post $post){
$this->post()->save($post);
}
为了更清楚地说明这一点,我希望变量$location将其插入到一个新的post方法中,这样它就可以访问publish方法 创建帖子时,确保传递正确的数组键和值。由于在数组中包含
$location
,它将从$location
键获取请求数据
这意味着$location
的值类似于'/path/to/image'
。因此,基本上您要将'/path/to/image'
作为键传递
尝试修改如下
auth()->user()->publish(
new post([
'title' => $request->title,
'body' => $request->body,
'location' => $location
])
);
还要确保您已经在Post
模型中添加了$filleble