2016-03-27 10 views
1

ich diesen Speicher Methode innerhalb OfferController haben:Laravel 5.1 - undefinierte Variable innerhalb Mail-Funktion

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->article()->first()->user->name); 
    if($maxoffer == null) 
    { 
     Auth::user()->maxoffer()->create($request->all()); 
    } 
    else 
    { 
     if($maxoffer->price < $request->input('price')) 
     { 
     $user = Auth::user(); 

     Mail::send('emails.newoffer', compact('user', 'maxoffer'), function ($m) use ($user) { 

     $m->from($maxoffer->article()->first()->user->email, $maxoffer->article()->first()->user->name); 
     $m->to($maxoffer->user()->first()->email, $maxoffer->user()->first()->name)->subject('Someone have the bigger offer than you'); 

     $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"); 


     return Redirect::back(); 

    } 

also, wenn maxoffer nicht null ist und wenn maxoffer<request->input('price') dann muss ich eine Zeile und dass die Arbeit schön aktualisieren, aber auch ich müssen MAIL zum vorherigen Benutzer senden, die maxoffer vor neuer maxoffer geschrieben wurde, aber innerhalb MAIL Funktion bekomme ich nur:

undefinierter Variable: maxoffer enter image description here

Was ist das Problem hier? Warum maxoffer ist nicht definiert?

+0

Probem ist nur maxoffer Variable - ich kann es in Mail übergeben :: senden ... – Andrew

Antwort

2

Übergeben Sie $ maxoffer an den Funktionsabschluss. Verwenden Sie ($ user, $ maxoffer)

Mail::send('emails.newoffer', compact('user', 'maxoffer'), function ($m) use ($user, $maxoffer) { 

    $m->from($maxoffer->article()->first()->user->email, $maxoffer->article()->first()->user->name); 
    $m->to($maxoffer->user()->first()->email, $maxoffer->user()->first()->name)->subject('Someone have the bigger offer than you'); 

    $key = ''; 
    $newOffer = Maxoffer::where('id', $maxoffer->id) 
       ->update(['price'=>$request->input('price'),'user_id'=>Auth::user()->id, 'key'=>$key, 'provera'=>$request->input('provera')]); 


    });