I was trying display an image at element but it is not working, And when i'm simply returning the data its displaying image.
route.php
Route::get('/dashboard',function() {
$Image = Auth::user()->profile_pic;
$type = 'image/jpeg';
$img = response($Image)->header('Content-Type', $type);
return View::make('dashboard', ['img'=>$img]);
});
dashboard.blade.php
<img src={{ $img }} class="img-circle" width="200" height="200">
Please help.
You should add a route so that when a request is sent to the specified URL, the avatar is read from the DB and sent to the browser, as image/jpeg.
E.g. Add the following code to your routes.php
Route::any('/user/{user}/profile-pic',
function(\App\User $user) {
$Image = Auth::user()->profile_pic;
return response($Image)->header('Content-Type', 'image/jpeg');
});
modify the /dashboard route to make use of this new route
Route::get('/dashboard',function() {
$id = Auth::user()->id;
$imageUrl="/user/$id/profile-pic";
return view('/dashboard', ['imageUrl' => $imageUrl]);
});
finally, in your view, bind the new variable
<img src="{{$imageUrl}}" class="img-circle" width="200" height="200">
Is Auth::user()->profile_pic
the URL of user's avatar? If so, just use
return View::make('dashboard', ['img'=>Auth::user()->profile_pic]);
Also, add quotes to src attribute:
<img src="{{ $img }}" class="img-circle" width="200" height="200">
It's important to know that
$img = response($Image)->header('Content-Type', $type);
is a response object which is Illuminate\Http\Response
, but in the HTML you need a link to the image, a string
, instead of a Response