Skip to content

Make any model checklistable with answer associated by model_id

License

Notifications You must be signed in to change notification settings

convenia/checklistable

Repository files navigation

checklistable logo

               

Codacy Badge Codacy Badge Build Status GitHub forks Dependencies GitHub Issues Contributions welcome License

Basic Overview

Add checklist in your project associated any model in your project

Install

composer require convenia/checklistable

publish migrations

php artisan vendor:publish --tag="checklistable"

migrate

php artisan migrate

Usage

add a trait

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Convenia\Checklistable\Traits\ChecklistableTrait;

class ModelClass extends Model
{
    use ChecklistableTrait;    

Checklist Methods

checklist()
// Return ChecklistService Object
ModelClass::checklist($type, $ownerId);  
checklist()->get()
// Return Checklist Model, if not existe will create it
ModelClass::checklist($type, $ownerId)->get();  

Question Methods

checklist()->questions()
// Return QuestionService Object
ModelClass::checklist($type, $ownerId)
    ->questions();  
checklist()->questions()->get()
// Return Collection of questions
ModelClass::checklist($type, $ownerId)
    ->questions()
        ->get();  
checklist()->questions()->fill()
// add and return question in lot (only if empty)
ModelClass::checklist($type, $ownerId)
    ->questions()
    ->fill([]);  
checklist()->questions()->delete()
// delete one question
ModelClass::checklist($type, $ownerId)
    ->questions()
    ->delete($questionId);  
checklist()->questions()->add()
// add one question an d return all
ModelClass::checklist($type, $ownerId)
    ->questions()
    ->add([
        'question' => 'What does Marcellus wallace looks like ?'
    ]);  

Answer Methods

checklist()->answer()
// Return QuestionService Object
ModelClass::checklist($type, $ownerId)
    ->answer();  
checklist()->answer()->get()
// retrive all answers about checklistable, if do not have, fill it
ModelClass::checklist($type, $ownerId)
    ->answer()
    ->get($checklistableId);  
checklist()->answer()->start()
// fill the answers with the questions
ModelClass::checklist($type, $ownerId)
    ->answer()
    ->start($checklistableId);  
checklist()->answer()->answer()
// change answer response
ModelClass::checklist($type, $ownerId)
    ->answer()
    ->start($checklistableId, $answerId, $answer = true)

License

Checklistable is open-sourced software licensed under the MIT license