Home >Backend Development >PHP Tutorial >[PHP][Biuld Your First App ]搭建你的第一个应用: Mandrill 篇

[PHP][Biuld Your First App ]搭建你的第一个应用: Mandrill 篇

WBOY
WBOYOriginal
2016-06-23 13:07:061009browse

本文适用于对 PHP 和 laravel 框架有一定了解并已经看完laravel入门视频:Laravel 5 Fundamentals 的初学者。本文内容主要讲解如何搭建一个有简单注册、登录、填写表单、生成文本、预览、发送邮件和展示的 web 应用。

视频作者的视频经常被非法上传的 youtube 上,想要向有关当局反映必需填写一个 DMCA 文件并附上源视频地址和非法上传的视频地址,还要表达一些诉求。为了方便起见,网站被设计成填写表单自动生成 DMCA 文件自动发送邮件。

如果还没看请先下载观看:

  • 链接: http://pan.baidu.com/s/1sjXeLQH
  • 提取密码:jjb5

1.简化在文中多次出现的 Auth::user() 直接在父类中声明。

父类

<?phpnamespace App\Http\Controller; use ... class Controller extends BaseController {     use DispatchesCommands,ValidatesRequests;     protected $user;     protected $signedIn;     public function __construct()    {        $this->user = $this->signedIn = Auth::user();    } } 

子类

<?phpnamespace App\Http\Controller; use ... class NoticesController extends Controller {   public function __construct()  {    $this->middleware('auth');//注册一个中间件对所有方法进行验证    parent::__construct();//继承父类的构造函数并添加新的内容  }   public function index()  {    return $this->user->notices;  }   public function create()  {    // get list of providers    $provider = Provider::list('name','id');     // load a view to create a new notice    return view('notices.create',compact('providers'));  }   pubilcfunction confirm(PrepareNoticeRequest $request)  {      $template = $this->compileDmcaTemplate($data = $request->all());       session()->flash('dmca',$data);       return view('notices.comfirm',compact('template'));//返回一个新视图页,检查填写的表单数据  }   public function store()  {      $this->creaeNotice($request);       return redirect('notices');  }   public function compileDmcaTemplate($data)  {      $data = $data + [          'name' => $this->user->name,          'email' => $this->user->email,      ];//为模版传入数据,拼接数据       return view()->file(app_path('Http/Templates/dmca.blade.php'),$data);  }   private function createNotice(Request $request)  {      $notice = session()->get('dmca') + ['template' => $request->input('template')];       $notice = $this->user->notices()->save($notice);       return $notice;  } } 

2.在使用 ManDrill 之前首先安装相应组件,使用命令 composer require guzzlehttp/guzzle:~4.0 。在环境配置中配置相应 MAIL_DRIVER=mandrill 。在 config/services.php 中配置 'mandrill => ['secret =>'注册 mandrill 获得 APIkey'] 。

发送 notice

成功

小结

本节使用 mandrill 引擎实现发送邮件功能。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn