2017-09-16 1 views
0

Je voudrais pousser dans mon modèle éloquent un attribut supplémentaire sur le calcul et je voudrais l'utiliser dans ma lame comme $user->avatarImg ma méthode de modèle ressembleajouter un nouvel attribut à Laravel collection éloquente

public function avatarImg() 
{ 

    if($this->hasMedia('avatar')) { 
     $image = $this->getMedia('avatar'); 
     $img = \Intervention\Image\ImageManagerStatic::make($image[0]->getPath())->encode('data-url'); 
    } 
    elseif ($this->blob->file) { 
     $img = 'data:image/jpeg;base64,'. base64_encode($this->blob->file); 
    } else { 
     $img = ''; 
    } 


    $this->user->put('avatarImg', $img); 

    dd($this->user); 

    return $img; 

} 

mais ce que je ne cherche pas de travail, je reçois:

Call to a member function put() on null 

comment pourrais-je faire cela correctement?

+0

Jetez un oeil à [cette question] (https://stackoverflow.com/questions/17232714/add-a-custom-attribute-to-a-laravel-eloquent -model-on-load), peut vous aider –

Répondre

0

Ressemble à une propriété user qui n'existe pas dans votre modèle. Si ce modèle est l'utilisateur juste essayer

$this->put('avatarImg', $img); 
+0

Merci pour vos commentaires. Essayé précédemment ne fonctionne pas non plus '' Appel à la méthode non définie Illuminate \ Database \ Query \ Builder :: put() '' – deroccha

+0

Essayez peut-être $ this-> avatarImg = $ img; –

+0

essayé ne reçoit pas ajouté – deroccha