craigzearfoss / bullets
Add bullet points to Laravel 5.1 Eloquent models.
Requires
- php: >=5.5.9
- illuminate/database: 5.1.*|5.2.*
This package is not auto-updated.
Last update: 2024-12-07 18:56:41 UTC
README
This package allows you to attach bullet points to an Eloquent model in Laravel 5.
Composer Install
It can be found on Packagist. The recommended way is through composer.
Edit composer.json
and add:
{ "require": { "craigzearfoss/bullets": "dev-master" } }
And install dependencies:
$ composer update
If you do not have Composer installed, run these two commands:
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install
Install and then Run the migrations
Find the providers
array key in config/app.php
and register the Bullets Service Provider.
'providers' => array( // ... Craigzearfoss\Bullets\BulletsServiceProvider::class, )
Run the migration to create the bullets
table.
php artisan vendor:publish --provider="Craigzearfoss\Bullets\Providers\BulletsServiceProvider"
php artisan migrate
Configuration
In your model add the BulletableTrait.
<?php // ... use Craigzearfoss\Bullets\BulletableTrait; class MyModel extends Model { use BulletableTrait;
Usage
To fetch the bullets for your model:
$bullets = $myModel->bullets()->get();
To sync the bullets for your model when storing or updating:
$myModel->syncBullets(isset($data['bullet_list']) ? $data['bullet_list'] : []);
To add the bullets for your model to you forms blade templates:
- Add the form select element.
<div class="form-group"> {!! Form::label('bullet_list', 'Bullet Points:') !!} {!! Form::select('bullet_list[]', $myModel->bullets()->lists('comment', 'comment')->toArray(), array_keys($myModel->bullets()->lists('comment', 'comment')->toArray()), ['id' => 'bullet_list', 'class' => 'form-control select2-bullet-list', 'multiple']) !!} </div>
- Add select.js to your layout.
<script type="text/javascript" src="js/select2.min.js"></script>
- Add the following to your css for the form element. This makes the bullet select list items have a width of 100%.
.select2-bullet-list + .select2-container--default .select2-selection--multiple .select2-selection__choice { width: 100%; } ``` 4. Add the following JavaScript to the form page. ```javascript <script type="text/javascript"> $("#bullet_list").select2({ placeholder: "Add Bullet Points", tags: true, tokenSeparators: ["\n"], maximumSelectionLength: 255 }); </script>
- To display the bullets for your model in a blade template:
@if (!empty($bullets)) <ul> @foreach($bullets as $bullet) <li>{{ $bullet->comment }}</li> @endforeach </ul> @endif
Changelog
Support
Please open an issue on GitHub
Contributor Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
License
Bullets is released under the MIT License. See the bundled LICENSE file for details.