2016-03-27 5 views
1

ich diesen Code haben, das Angebot und maxoffer speichern, aber ich kann es nicht in meiner E-Mail-Funktion:nicht funktionieren kann von Modell zu Post - Laravel 5.1

public function store(Requests\OfferRequest $request) 
    { 

      $offer = new Offer($request->all()); 

      Auth::user()->offer()->save($offer); 

      $maxoffer = Maxoffer::where('article_id', $request->input('article_id')) 
        ->where('start', Carbon::createFromFormat('m/d/Y h:i a', $request->input('start'))) 
        ->first(); 
//dd($maxoffer); 
    if($maxoffer == null) 
    { 
     Auth::user()->maxoffer()->create($request->all()); 
    } 
    else 
    { 
     if($maxoffer->price < $request->input('price')) 
     { 
     $key = ''; 
     $newOffer = Maxoffer::where('id', $maxoffer->id) 
        ->update(['price'=>$request->input('price'),'user_id'=>Auth::user()->id, 'key'=>$key, 'provera'=>$request->input('provera')]); 
     } 
    } 

     Alert::success('Keep looking for best rates. Good luck...', 'Thanks for bidding!')->persistent("Close"); 
     $user = Auth::user(); 

     Mail::send('emails.newoffer', compact('user', 'maxoffer'), function ($m) use ($user) { 
     $m->from('[email protected]', $maxoffer->article()->hname); 
     $m->to($user->email, $user->name)->subject('Someone have the bigger offer than you'); 
     }); 

     return Redirect::back(); 

    } 

so In Maxoffer Controller habe ich:

public function user(){ 
     return $this->belongsTo('App\User'); 
    } 

    public function article(){ 
     return $this->belongsTo('App\Article'); 
    } 

aber in Mail-Funktion kann ich es nicht verwenden. WARUM?

Warum $maxoffer->article()->hname innen Mail:: ist ein Problem ...

Laravel Fehler:

i Fehlermeldungen erhalten: Error in 22b7e7ff4b942f1d8fa25f9b1c9a1748 Linie 6: Nicht definierte Eigenschaft: \ Database \ Eloquent \ Relations Illuminate \ Gehört :: $ hname (View: /var/www/html/resources/views/emails/newoffer.blade.php)

Antwort

0

Übergeben Sie $ maxoffer an den Verschluss. wie diese verwenden ($ user, $ maxoffer)

Mail::send('emails.newoffer', compact('user', 'maxoffer'), function ($m) use ($user, $maxoffer) { 
    $m->from('[email protected]', $maxoffer->article()->hname); 
    $m->to($user->email, $user->name)->subject('Someone have the bigger offer than you'); 
    });