【问题标题】:unreachable statement in laravel when executing a function执行函数时laravel中无法访问的语句
【发布时间】:2020-05-11 15:50:57
【问题描述】:

当记录存储在数据库中时,我尝试执行发送邮件功能,但收到无法访问的语句

public function store(Request $request)
    {
        $visit = Visit::create($request->all());
        return response()->json($visit);
        $this->sendEmail($request);

    }

这是发送邮件功能

public function sendEmail(Request $request){
        $visit = Visit::create($request->all());
        $host_email = Db::table('users')
            ->where('name', '=', $visit->visitor_host)
            ->value('email');

        $to_name =  $request->input('visitor_name');
        $data = array('name'=> $to_name, "body" => "Test mail");


        Mail::send('mails.mail', $data, function($message) {
            $message->from('cytonnvisitor@gmail.com','cytonn');
            $message->to('mimikiduchu@gmail.com');
            $message->subject('Visitor coming notification');

        });
    }

【问题讨论】:

  • 当我这样做时,没有记录保存在数据库中

标签: php laravel smtp gmail


【解决方案1】:

在 store 函数末尾输入 return response()->json($visit);

【讨论】:

    【解决方案2】:

    来自manual

    如果从函数内部调用,则立即返回语句 结束当前函数的执行,并将其参数返回为 函数调用的值。

    把你的代码改成

    $this->sendEmail($request);
    return response()->json($visit);
    

    在您返回之前执行邮件发送。

    【讨论】:

    • 当我这样做时,没有记录保存在数据库中
    • 您可能不应该在您的sendEmail() 方法中使用$visit = Visit::create($request->all());,您已经在您的store() 方法中这样做了(为什么要这样做两次?)。将$visit 传递给您的sendEmail() 方法
    • 作为sendmail()中的第三个参数?
    • second参数,是的,你的sendEmail()现在只有一个参数
    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2017-04-29
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多