haythem/pusher-dynamic-field

A Laravel Nova field.

v1.0.0 2020-11-20 12:27 UTC

This package is auto-updated.

Last update: 2024-04-20 20:09:47 UTC


README

Laravel Nova Pusher Dynamic Field

Installation :

composer require haythem/pusher-dynamic-field

How to use it :

create an event first

        <?php

        namespace App\Events;

        use Illuminate\Queue\SerializesModels;
        use Illuminate\Broadcasting\PrivateChannel;
        use Illuminate\Foundation\Events\Dispatchable;
        use Illuminate\Broadcasting\InteractsWithSockets;
        use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

        class MyEvent implements ShouldBroadcast
        {
            use Dispatchable, InteractsWithSockets, SerializesModels;

            public $value;
            public $id;

            public function __construct($value,$id = 1)
            {
                $this->value = $value;
                $this->id = $id;

            }
            public function broadcastOn()
            {
                return new PrivateChannel('object.' . $this->id);
            }

            public function broadcastAs()
            {
                return 'my-event';
            }
        }

Add a channel in the channel.php file

<?php

    Broadcast::channel('object.{id}', function ($user, $id) {
        return true;
    });

Add the field to your resource

    PusherDynamicField::make("Pusher", function(){return "1";})
        ->pusherId("5fa5d6501def0291a52c")
        ->pusherCluster("mt1")
        ->badgesMap([ "5"=>"primary","1"=>"success", "2"=>"danger", "3"=>"warning", "4"=>"info","6"=>"#71504e"]) // if you need to make it a badge
        ->channelName("object.".$this->id),