Php Laravel在每个订单上发送邮件

Php Laravel在每个订单上发送邮件,php,laravel,Php,Laravel,我有以下命令控制器,并已创建邮寄以及。我被困在应该传递什么参数的点上,这样我就可以在shipped.blade文件上传递数据了。我看了几个例子,但没能让它起作用。 此外,我应该在何处使用foreach函数来附加所有已下订单的项目 class Order extends Controller { public function addOrder(Request $req) { // User detail $results = DB::table('

我有以下命令控制器,并已创建邮寄以及。我被困在应该传递什么参数的点上,这样我就可以在shipped.blade文件上传递数据了。我看了几个例子,但没能让它起作用。 此外,我应该在何处使用foreach函数来附加所有已下订单的项目

class Order extends Controller
{
    public function addOrder(Request $req)
    {
        // User detail
        $results = DB::table('users')->get()->where('id' , $req->input('user_id'));
        foreach($results as $userrow) {
            $address_id = $userrow->address;
        }
     
        // Address
        $address_query = DB::table('shippings')->get()->where('id' , $address_id);
        foreach($address_query as $ad_row) {
            $address = $ad_row->address;
            $name = $ad_row->name;
        }

        // Generate Orderid
        $order_id = mt_rand();
        
        // Bag total
        $amount = DB::table('bag')->where('user_id' , $req->input('user_id'))->where('order_id', 0)->sum('bag.sale_price');

        // add order

        // get user email
        $emailId = DB::table('users')->where('id' , $req->input('user_id'))->value('email');

        $addAddress = DB::table('orders')->insert([
            'email' => $emailId,
            'user_id' =>  $req->input('user_id'), 
            'name' =>  $req->input('name'), 
            'order_id' => $order_id,
            'payment_method'=> $req->input('payment_method'),
            'mobile_number'=> $req->input('mobile_number'),
            'pincode'=> $req->input('pincode'),
            'city'=> $req->input('city'),
            'state'=> $req->input('state'),
            'house_number'=> $req->input('house_number'),
            'address_area'=> $req->input('address_area'),
            'landmark'=> $req->input('landmark'),
            'amount'=> $amount
        ]);
        
        if ($addAddress ==1) {
            $response = array('message'=>"Order Added" , 'result'=>1);
        
            //update bag items
            $affected = DB::table('bag')->where('user_id', $req->input('user_id'))->where('order_id', 0)->update(['order_id' => $order_id]);
         
            Mail::to($emailId)->send(new OrderShipped());
        } else {
            $response = array('message'=>"Problem in adding order" , 'result'=>0);
        }
        
        return $response;
    }
}
邮购

public function __construct()
{
    //
}

/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    return $this->from('orders@factory2homes.com', 'Factory2Homes')
        ->subject('New Order Received')
        ->bcc('mail@androidapp.factory2homes.com')
        ->markdown('emails.orders.shipped');
}

您可以在mailable上创建公共属性,然后通过构造函数注入它们

public $prop1;
public $prop2;
...


public function __construct($arg1, $arg2, ...)
{
    $this->prop1 = $arg1;
    $this->prop2 = $arg2;
    ...
}

public function build()
{
    return $this->from('orders@factory2homes.com', 'Factory2Homes')
        ->subject('New Order Received')
        ->bcc('mail@androidapp.factory2homes.com')
        ->markdown('emails.orders.shipped', ['arg1' => $this->prop1, 'arg2' => $this->prop2, ...]);
}

您可以在mailable上创建公共属性,然后通过构造函数注入它们

public $prop1;
public $prop2;
...


public function __construct($arg1, $arg2, ...)
{
    $this->prop1 = $arg1;
    $this->prop2 = $arg2;
    ...
}

public function build()
{
    return $this->from('orders@factory2homes.com', 'Factory2Homes')
        ->subject('New Order Received')
        ->bcc('mail@androidapp.factory2homes.com')
        ->markdown('emails.orders.shipped', ['arg1' => $this->prop1, 'arg2' => $this->prop2, ...]);
}