J'ai une base de données où les images sont stockées dans la ligne de la table comme ce nom (chaîne) "nom" someext (chaîne) "une description" filesnames (chaîne) image1.jpeg | image2.jpeg
Image1 et image2 sont stockées dans le dossier "public / storage / image" \ images enregistrées dans le dossier
public function store(Request $request)
{
$data = request()->validate([
'name' => 'required',
'sometext' => '',
'testImages' => '',
'testImages' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$images=array();
if($files=$request->file('testImages')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('image',$name);
$images[]=$name;
}
}
auth()->user()->tests()->create([
'name' => $data['name'],
'sometext' => $data['sometext'],
'filenames' => implode("|",$images),
]);
}
public function show ($id)
{
$tests = Tests::findorfail($id); //get row data from table with ID
return view('test.show-report', compact('tests')); //returing data to blade
}
Dans la lame, je suis capable de faire un $ tests-> name et $ tests-> description pour obtenir des données avec succès. Je suis incapable de comprendre comment afficher les images de la lame "noms de fichiers".
5 réponses
Vous pouvez suivre la procédure ci-dessous
<img src="{{ public_path('storage\image') }}{{ $tests->filenames }}" alt=""/>
Utilisez le code suivant pour séparer les noms des images
$img = exploade('|', $tests->filenames);
dump($img);
Si les noms des images sont correctement stockés dans la base de données avec l'extension correcte, voici ce dont vous aurez besoin dans votre vue en lame:
<img src="/storage/image/{{$tests->NAME_OF_COLUMN_IN_DB}}" />
Remplacez simplement "NAME_OF_COLUMN_IN_DB" par le nom de la colonne où vous stockez le nom de l'image dans votre base de données.
Vous pouvez faire comme ça:
@foreach(explode('|',$tests->filenames) as $fileName)
<img src="/storage/image/{{$fileName}}"/>
@endforeach
Utilisez comme ça
<img src="{{ url('') }}/storage/image/{{$tests-> filenames}}">
Essayez comme ça <img src="/storage/image/{{ $tests['filenames'] }}" height="30px" width="30px" />
espérons que cela aidera: Dans ce cas: Dans le contrôleur, utilisez explode () pour $ tests-> filenames, créez un tableau puis bouclez-le comme ceci
@foreach(json_decode($tests->filenames, true) as $images)
<img src="/storage/image/{{ $images }}" height="30px" width="30px" />
@endforeach
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.