根据用户通过电子邮件保存的搜索字词提醒用户

时间:2017-03-30 11:05:08

标签: php mysql laravel

我想根据用户保存的搜索字词提醒用户。所以,我有警报表,其中存储了用户ID和术语。例如:

ID: 1 | uid: 27 | emailSentAt: null | search: Adidas

ID: 2 | uid: 27 | emailSentAt: null | search: Samsung

ID: 3 | uid: 34 | emailSentAt: null | search: Pro Evolution Soccer 2017

当用户搜索某些内容时,会从广告系列表中读取内容。为简单起见,我们假设它有id和search(VARCHAR)字段。

我想要的是每次添加与该字词相关的新广告系列时,提醒用户(根据其存储的搜索字词)。它不必是自动的。我可以手动完成,我尝试过这样的事情...... 这是来自Mailable class:

的函数
    public function build()
        {
            echo "Sending email alert...\n";
            $user = DB::table('alerts')->select('*')
            ->join('users', 'alerts.uid', '=', 'users.id')->whereNotNull('search')->get();

            return $this->view('emails.newSearchAlert', compact('user'));
        }

来自Command class:

    public function handle()
    {
        $when = Carbon::now();
        $user = DB::table('alerts')->select('search', 'email')
        ->join('users', 'alerts.uid', '=', 'users.id')->whereNotNull('search')->get();
        foreach ($user as $u) {
            Mail::to($u->email)->later($when, new NewAlertsEmail);
        }
        echo "All email alerts are sent.";
    }

当我运行命令php artisan email:users时,它会向所有用户发送包含所有搜索字词的电子邮件。 我的问题是:我如何设法将查询结果显示在以下视图中:

<h1>New campaigns are available for your search terms: {{ $user->search }}: </h1> <img src="http:/mydomain.com/wp-content/uploads/2015/10/{{ $campaign->search }}.png">

顺便说一下。我正在使用Laravel 5.3。

0 个答案:

没有答案