jeudi 2 septembre 2021

Conditionally assign Laravel's controller values on Construct method

I work with a Laravel porject that uses an array of Model attributes to show it on the view. Unlike most Laravel prokects where do you send a set of data to the view and you choose how to show it on our project that's defined on a Controller's variable.

This variable ($showFields) expects an array of Model's atributes and the values are shown on the view.

The thing is that I need to adapt the shown atributes based on one atrubute's id (vendor_id). My idea is, based on the vendor_id assign one array of attributes or another.

I've been trying with the Controller's constructor method but it's not working as when it's called seems like it does not have the values yet. Is this even possible?

This is the controller's code:

protected $showFields = []; // This is the variable that tells the view what attributes to show

protected $vendorInformation =  [...];

protected $noVendorInformation = [...];

public function __construct(QuoteService $quoteService)
{
    parent::__construct();

    $this->quoteService = $quoteService;

    if($this->vendor_id === xx){
        array_push($this->showFields, $this->noVendorInformation);
    } else {
        array_push($this->showFields, $this->vendorInformation);
    }

}

I'm working with Laravel 5.7



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/3DFdskX
via IFTTT

Aucun commentaire:

Enregistrer un commentaire