将var从控制器传递给邮件类laravel

时间:2017-03-02 21:10:18

标签: php laravel laravel-5

我正在尝试发送带附件的邮件。它基于我的控制器的var。但我不知道如何将变量的内容从我的控制器传递到我的邮件类。我的邮件视图使用vars没有问题。我需要构建方法中的var从我在控制器中生成的目录中选择正确的文件。

返回以下内容

  

App \ Mail \ Aanvraag :: build()

缺少参数1

邮件类

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\App;
use App\Http\Controllers\aanvragenController;

class Aanvraag extends Mailable
{
    use Queueable, SerializesModels;

    public $aanvraag;

    public function __construct($aanvraag)
    {
        $this->aanvraag = $aanvraag;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {



        return $this->view('mails.aanvraag')->attach(url('/exports/'. $aanvraag->naam .'sheet.xls'));

    }
}

控制器

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use App\Aanvragen;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
use App\Mail\Aanvraag;


class aanvragenController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');

    }

    public function index() {

            if (Auth::id() == 1) {
                $aanvragen = Aanvragen::all();
            } else {

                $userid = Auth::id();

                $aanvragen = Aanvragen::where('user_id', $userid)
                    ->orderBy('id')
                    ->take(10)
                    ->get();

            }

            return view('aanvragen.index', compact('aanvragen'));

    }

    public function create() {



        return view('aanvragen.create');

    }

    public function store() {

/*        $this->validate(request(), [

            'studentnummer' => 'unique:aanvragen'

        ]);*/

        $aanvraag = new Aanvragen;

        $aanvraag->naam = request('naam');
        $aanvraag->studentnummer = request('studentnummer');
        $aanvraag->email = request('email');
        $aanvraag->telefoonnummer = request('telefoonnummer');
        $aanvraag->stagebedrijf = request('stagebedrijf');
        $aanvraag->contactpersoon = request('contactpersoon');
        $aanvraag->emailContact = request('emailContact');
        $aanvraag->telefoonContact = request('telefoonContact');
        $aanvraag->begindatum = request('begindatum');
        $aanvraag->einddatum = request('einddatum');
        $aanvraag->user_id = Auth::id();

        $aanvraag->save();

        $data = array (

            array('Naam', 'Studentnummer', 'Email', 'Telefoonnummer', 'Stagebedrijf', 'Contactpersoon', 'Email contactpersoon'
            , 'Telefoon contactpersoon', 'begindatum', 'einddatum'),

            array($aanvraag->naam, $aanvraag->studentnummer, $aanvraag->email, $aanvraag->telefoonnummer, $aanvraag->stagebedrijf,
                $aanvraag->contactpersoon, $aanvraag->emailContact, $aanvraag->telefoonContact, $aanvraag->begindatum, $aanvraag->einddatum
                )

        );

        $attachment = $aanvraag->naam;

        \Excel::create($aanvraag->naam.'sheet', function ($excel) use ($data) {
            $excel->sheet('Sheet1', function ($sheet) use ($data) {
                $sheet->fromArray($data);
            });
        })->save();

        \Mail::to('johndoe@info.com')->send(new Aanvraag($aanvraag));

        return redirect('/');

    }

}

0 个答案:

没有答案