Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将变量从控制器传递到邮件类laravel_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 将变量从控制器传递到邮件类laravel

Php 将变量从控制器传递到邮件类laravel,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在尝试发送带有附件的邮件。它基于我的控制器的变量。但我不知道如何将变量的内容从控制器传递到邮件类。我的邮件视图在使用vars时没有问题。我需要build方法中的var从我在控制器中生成的目录中选择正确的文件 这将返回以下结果 App\Mail\Aanvraag::build()缺少参数1 邮件类 <?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illu

我正在尝试发送带有附件的邮件。它基于我的控制器的变量。但我不知道如何将变量的内容从控制器传递到邮件类。我的邮件视图在使用vars时没有问题。我需要build方法中的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'));

    }
}

build()
方法不接受任何参数。您需要从
build
方法内部访问类参数
$this->aanvraag
。我已经尝试过类似的方法,但是我得到了一个
未定义变量作为返回。我该怎么做呢?你需要显示这些代码。我已经添加了邮件类和控制器的全部代码。
return$this->view('mails.aanvraag')->attach(url('/exports/'.$this->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('/');

    }

}