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