HI,想問各位大大们如何可以讀取我的stored procedure俚的data然后pass去mailable发邮件
我的 Controller Page
public function mailsend()
{
$data=DB::statement('CALL SendMailABC(?,?,?)',
array(
'1', //ID
'User 2', //User
'David' //Name
));
\Mail::to('abc@gmail.com')->send(new SendMail($data));
return 'A message has been sent to Mailtrap!';
}
我的 Mail Page
public function __construct($data)
{
$this->data=$data;
}
public function build()
{
return $this -> from('sendmail123@hotmail.com', 'Test Mail')
-> subject('mail from mee')
-> view('mails.mailview')
->with([
'Login_ID'=>$this->prm_ID, //prm_ID is from sp field
'User'=>$this->prm_User,
'Name'=>$this->prm_Name,
]);
}
我的 Stored Procedure
PROCEDURE SendMailABC( IN prm_LoginID VARCHAR(80),IN prm_UserName VARCHAR(100), IN prm_ProjName VARCHAR(255))
BEGIN
SELECT
Useremail,
UserName,
ProjName,
RTNo
FROM mytable
Where mytable.LoginID =prm_LoginID;
END
Blade Page
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p>Hi {{$User}},</p>
<p>This is your Login ID {{$Login_ID}} and name {{$Name}}</p>
</body>
</html>
如何可以把我Stored Procedure所SELECT的data都放去我的blade page 呢?
MySQL 做不到select * from SendMailABC()
也不建議,除非逼不得已情況下可以使用insert臨時表再select方式
MySql stored procedures: How to select from procedure table? - Stack Overflow
1.Stored Procedure不要做查詢用途
,我個人使用時機update/insert/delete減少傳輸數據量或是要加密腳本特殊情況。
e.g :
insert into table (col1,col2,col3.....col40) values (@col1,@col2,.....@col40);
可以優化成
execute yoursp @col1,@col2...@col40
2.假如真的需要做查詢模組化,請優先考慮 view 接著考慮 function
看你還在用「DB::」就了解你還不太了解orm。
或許你再去了解一下db::下一個說明文件。就可以解決你的問題了。