Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

nasirkhan/laravel-starter

1355 stars
5 code files
View nasirkhan/laravel-starter on GitHub

composer.json

Open in GitHub
{
//
"require": {
"php": "^7.3|^8.0",
//
"spatie/laravel-medialibrary": "^8.10"
},
//
}

resources/views/frontend/users/profileEdit.blade.php

Open in GitHub
// ...
 
{{ html()->modelForm($userprofile, 'PATCH', route('frontend.users.profileUpdate', $$module_name_singular->id))->class('form-horizontal')->acceptsFiles()->open() }}
 
// ...
 
<div class="col-md-5">
<div class="form-group">
<label for="file-multiple-input">Click here to update photo</label>
<input id="file-multiple-input" name="avatar" multiple="" type="file" class="form-control-file">
</div>
</div>
 
// ...
 
{{ html()->closeModelForm() }}
 
// ...

app/Models/User.php

Open in GitHub
use App\Models\Traits\HasHashedMediaTrait;
use Spatie\MediaLibrary\HasMedia;
use Illuminate\Foundation\Auth\User as Authenticatable;
 
class User extends Authenticatable implements HasMedia
{
use HasHashedMediaTrait;
//
}

app/Models/Traits/HasHashedMediaTrait.php

Open in GitHub
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\MediaCollections\FileAdder;
 
trait HasHashedMediaTrait
{
use InteractsWithMedia {
InteractsWithMedia::addMedia as parentAddMedia;
}
 
public function addMedia($file): FileAdder
{
return $this->parentAddMedia($file)->usingFileName($file->hashName());
}
}

app/Http/Controllers/Frontend/UserController.php

Open in GitHub
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
 
class UserController extends Controller
{
public function profileUpdate(Request $request, $id)
{
//
if ($request->hasFile('avatar')) {
if ($$module_name_singular->getMedia($module_name)->first()) {
$$module_name_singular->getMedia($module_name)->first()->delete();
}
 
$media = $$module_name_singular->addMedia($request->file('avatar'))->toMediaCollection($module_name);
 
$$module_name_singular->avatar = $media->getUrl();
 
$$module_name_singular->save();
}
//
}
//
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.