Php 无法从具有一对一关系的公用文件夹中取出图像

Php 无法从具有一对一关系的公用文件夹中取出图像,php,laravel,one-to-one,Php,Laravel,One To One,我在从公用文件夹获取图像时遇到一些问题,在数据库中,我有UserImage表和personal\u info表,它们以一对一的关系连接在一起。我尝试过使用它,但它只返回空白结果 代码如下: 家庭控制器: public function getInfo($id) { $data = personal_info::where('id', $id)->get(); $data3 = UserImage::where('user_id', $id)->get(); r

我在从公用文件夹获取图像时遇到一些问题,在数据库中,我有
UserImage
表和
personal\u info
表,它们以一对一的关系连接在一起。我尝试过使用它,但它只返回空白结果

代码如下:

家庭控制器:

public function getInfo($id) {
    $data = personal_info::where('id', $id)->get();
    $data3 = UserImage::where('user_id', $id)->get();
    return view('test',compact('data', 'data3'));
public function store1(Request $request)
{
    $this->validate($request, [
        'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    if ($request->hasFile('file')) {
        $image = $request->file('file');
        $name  = $image->getClientOriginalName();
        $size  = $image->getClientSize();
        $id    = $request->user_id;

        $destinationPath = public_path('/images');
        $image->move($destinationPath, $name);

        $userImage = new UserImage;
        $personal_info = new personal_info;
        $userImage->name = $name;
        $userImage->size = $size;
        $user = personal_info::find($id);
        $user->UserImages()->save($userImage);
    }
    return redirect('/home');
}
test.blade.php(我在这里显示图像)


如我所见,保存的图像名称与$currentUser->name之间没有关系
你能展示你用来保存图像的代码吗?在这里,您必须使用当前用户名保存图像。

这里的错误是:
$image->move($destinationPath,$name)

如我所见,保存的图像名称与$currentUser->name之间没有关系
你能展示你用来保存图像的代码吗?在这里,您必须使用当前用户名保存图像。


这里的错误是:
$image->move($destinationPath,$name)

由于您没有将资产保存到存储器中并保存到公共目录中,因此可以使用该方法。如果您需要坚持使用,则需要创建一个从存储目录到公用目录的符号链接(如所述),并使用存储目录保存资产。

由于您没有将资产保存到存储中并保存到公用目录中,因此可以改为使用该方法。如果您需要坚持使用,您需要创建一个从存储目录到公共目录的符号链接,并使用存储目录来保存您的资产。

dd
$currentUser->name
在foreach中让我们看OK稍等片刻,稍等片刻,我想我们不能在视图文件中添加?我认为它只能在控制器{dd($currentUser->name)}@NorrisOduro中完成,非常感谢您提供的资源,稍后将阅读:)dd
$currentUser->name
在foreach中让我们看一下等待一分钟,我想我们不能在视图文件中添加吗?我认为它只能在控制器{dd($currentUser->name)}@NorrisOduro中完成。非常感谢您提供的资源,稍后将阅读:)它有什么问题?我只是将它移动到我的公共存储中?是的,这是错误,使用用户名而不是$image->getClientOriginalName()保存,那么图像不会保存到数据库中吗?另一种解决方案,你可以使用url('images/'。$currentUser->name)而不是你的资产。好的,问题已经解决了,也非常感谢你的帮助:)它怎么了?我只是将其移动到我的公共存储中?是的,这是错误,使用用户名而不是$image->getClientOriginalName()保存图像,那么图像不会保存到数据库中吗?另一种解决方案,您可以使用url('images/'。$currentUser->name)而不是您的资产。好的,问题已经解决,非常感谢您的帮助:)
public function store1(Request $request)
{
    $this->validate($request, [
        'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    if ($request->hasFile('file')) {
        $image = $request->file('file');
        $name  = $image->getClientOriginalName();
        $size  = $image->getClientSize();
        $id    = $request->user_id;

        $destinationPath = public_path('/images');
        $image->move($destinationPath, $name);

        $userImage = new UserImage;
        $personal_info = new personal_info;
        $userImage->name = $name;
        $userImage->size = $size;
        $user = personal_info::find($id);
        $user->UserImages()->save($userImage);
    }
    return redirect('/home');
}