问题描述
我无法在视图中的标签img中显示图像。我可以将上传的图像保存在存储->应用程序->公共->书籍中,并将图像名称也保存在数据库中。但是在运行 PHP artisan storage:link 以访问 public-> storage 中的文件之后,但是无论我使用asset()还是url()方法,我都可以不能在img标签中显示我的图像,只是alt =“”属性,有人知道我做错了吗?
这是我的Controller store()。
delete require.cache[module.id];
这是我要显示的html。
public function store(Request $request)
{
// Handle File Upload
if($request->hasFile('book_image')){
// Get filename with the extension
$filenameWithExt = $request->file('book_image')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt,PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('book_image')->getClientOriginalExtension();
// Filename to store
$fileNametoStore= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('book_image')->storeAs('books',$fileNametoStore);
} else {
$fileNametoStore = 'noimage.png';
}
//save in database
$itens = \App\Book::create([
'book_name' => mb_strtolower($request->book_name),'author_name' => mb_strtolower($request->author_name),'publishing_name' => mb_strtolower($request->publishing_name),'description' => $request->description,'release_date' => $request->release_date,'category' => mb_strtolower($request->category),'book_image' => $fileNametoStore
]);
flash('Livro criado com sucesso !')->success();
return redirect()->route('admin.books.index');
}
@foreach($books as $book)
<tr>
<td><input type="checkBox" class="checkthis" /></td>
<td>
<img style="width: 80px;height: 80px" src="{{ url('books/{$book->book_image}') }}" alt="{{$book->book_image}}">
</td>
<td>{{$book->book_name}}</td>
<td>{{$book->author_name}}</td>
<td>{{$book->publishing_name}}</td>
<td>{{$book->release_date}}</td>
<td>
</tr>
解决方法
您需要通过src,如下所示。
src="{{ url('books/'.$book->book_image) }}"
作为存储文件夹
src="{{ asset('storage/books/'.$book->book_image) }}"