0
我正在嘗試獲取具有文件集合的mailable安裝程序。郵件控制器看起來像:將集合傳遞給可打印的| Laravel 5.4
<?php
namespace App\Mail;
use App\Document;
use App\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\User;
class OrderComplete extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $order;
public $documents;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $user, Order $order, Document $document)
{
//
$this->user = $user;
$this->order = $order;
$this->documents = $document;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.customers.complete');
}
}
控制器調用mailable看起來像;因爲我認爲這應該工作
Type error: Argument 3 passed to App\Mail\OrderComplete::__construct() must be an instance of App\Document, instance of Illuminate\Database\Eloquent\Collection given, called in /Users/ap/sites/propair/app/Http/Controllers/OrderController.php on line 253
我很困惑:
use App\Document;
// other code...
$documents = Document::where('order_id', $orderId)
->where('product', 'like', '%response')
->get();
Mail::to($customer)
->send(new OrderComplete($customer, $order, $documents));
,但我不斷收到此錯誤?
感謝
真棒,非常感謝你,我不知道它的工作這樣。愚蠢的問題,收藏如何知道什麼屬性?如果它從集合中獲取它們,爲什麼還要麻煩定義一個實例(爲什麼實例不能以同樣的方式獲取屬性)? – Ash
一個集合基本上(它也有一些有用的幫助函數)一組模型。它並不真正「知道」擁有屬性 - 屬性來自其中包含的各個模型。 – ceejayoz