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');
}