Mentions based on Eloquent models for Laravel 5.

1.2.0 2018-11-10 06:51 UTC


Build Status PHP from Packagist Latest Version License

This package makes it possible to create text/textarea fields that enable mentioning by using At.js.

The data for the autocomplete is loaded from a route which will load data based on predefined key-value pairs of an alias and a model in the config.


Require this package, with Composer, in the root directory of your project.

$ composer require faustbrian/laravel-mentions

If you need to modify the configuration or the views, you can run:

php artisan vendor:publish --provider="BrianFaust\Mentions\MentionsServiceProvider"

The package views will now be located in the app/resources/views/vendor/mentions/ directory and the configuration will be located at app/config/mentions.php.


To make it possible for At.js to load data we need to define key-value pairs that consist of an alias and a corresponding model.

return [

    'users'    => 'App\User',      // responds to /api/mentions/users
    'friends'  => 'App\Friend',    // responds to /api/mentions/friends
    'clients'  => 'App\Client',    // responds to /api/mentions/clients
    'supports' => 'App\Supporter', // responds to /api/mentions/supports


So now with these aliases configured we could create a new textfield which will send a request to the users route and search for matching data in the name column.

{!! mention()->asText('recipient', old('recipient'), 'users', 'name') !!}


<!doctype html>
<html lang="en">
        <meta charset="UTF-8">
        <title>Laravel PHP Framework</title>
        <link rel="stylesheet" type="text/css" href="/styles/jquery.atwho.min.css">

        <div class="container">
            {!! mention()->asText('recipient', old('recipient'), 'users', 'name') !!}
            {!! mention()->asTextArea('message', old('message'), 'users', 'name') !!}
        </div><!-- /.container -->

        <!-- Requirements -->
        <script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
        <script src="/scripts/jquery.atwho.min.js"></script>
        <script src="/scripts/jquery.caret.min.js"></script>
        <!-- Laravel Mentions -->


$ phpunit


If you discover a security vulnerability within this package, please send an e-mail to hello@brianfaust.me. All security vulnerabilities will be promptly addressed.



MIT © Brian Faust