Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有Laravel联系表的确认警报框_Php_Laravel_Blade - Fatal编程技术网

Php 带有Laravel联系表的确认警报框

Php 带有Laravel联系表的确认警报框,php,laravel,blade,Php,Laravel,Blade,我对Laravel是个新手,但我已经设法让一个联系表工作,并在出现一些验证错误时显示这些错误 然而,我确实有一个问题,不知道如何处理它在拉雷维尔。当发送消息(验证规则通过)时,我希望显示一个警告框(引导式)说“谢谢,消息已发送” 代码 public function postContact() { $formData = Input::all(); // input validator with its rules $validator = Validator::mak

我对Laravel是个新手,但我已经设法让一个联系表工作,并在出现一些验证错误时显示这些错误

然而,我确实有一个问题,不知道如何处理它在拉雷维尔。当发送消息(验证规则通过)时,我希望显示一个警告框(引导式)说“谢谢,消息已发送”

代码

public function postContact()
{
    $formData = Input::all();

    // input validator with its rules
    $validator = Validator::make(
        array(
            'name' => $formData['name'],
            'email' => $formData['email'],
            'subject' => $formData['subject'],
            'message' => $formData['message']
        ),
        array(
            'name' => 'required|min:3',
            'email' => 'required|email',
            'subject' => 'required|min:6',
            'message' => 'required|min:5'
        )
    );

    if ($validator -> passes()) {
        // data is valid
        Mail::send('emails.message', $formData, function($message) use ($formData) {
            $message -> from($formData['email'], $formData['name']);
            $message -> to('info@company.com', 'John Doe') -> subject($formData['subject']);
        });

        return View::make('contact');
    } else {
        // data is invalid
        return Redirect::to('/contact') -> withErrors($validator);
    }
}

如何在Laravel 4中实现这一点?

当您的数据无效时,您可以使用
withErrors()
方法将一些数据(错误)传递到路由。 您可以对任何类型的数据使用相同的过程

例如:

return View::make('contact')->withMessage("Thanks, message has been sent");
此方法
withMessage()
将创建一个新变量
message
,并将其存储在会话中一个请求周期

因此,在您看来,您可以这样访问它:

@if(Session::has('message'))
<div class="alert-box success">
    {{ Session::get('message') }}
</div>
@endif
@if(会话::has('message'))
{{Session::get('message')}
@恩迪夫

您可以将
重定向
类的
方法一起使用:

if ($validator -> passes()) {
    // data is valid
    Mail::send('emails.message', $formData, function($message) use ($formData) {
        $message -> from($formData['email'], $formData['name']);
        $message -> to('info@company.com', 'John Doe') -> subject($formData['subject']);
    });

    //Redirect to contact page
    return Redirect::to('/contact')->with('success', true)->with('message','That was great!');
} else {
    // data is invalid
    return Redirect::to('/contact') -> withErrors($validator);
}
您将被重定向到带有会话变量
success
message
集的联系人页面

将它们用于视图中的警报,例如在引导警报中:

带刀片

@if(Session::has('success'))
    <div class="alert alert-success">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
    <strong>Success!</strong> {{ Session::get('message', '') }}
    </div>
@endif
<?php if(Session::has('success')): ?>
    <div class="alert alert-success">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        <strong>Success!</strong> <?php echo Session::get('message', ''); ?>
    </div>
<?php endif; ?>
@if(Session::has('success'))
&时代;
成功{{Session::get('message','')}
@恩迪夫
无刀片

@if(Session::has('success'))
    <div class="alert alert-success">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
    <strong>Success!</strong> {{ Session::get('message', '') }}
    </div>
@endif
<?php if(Session::has('success')): ?>
    <div class="alert alert-success">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        <strong>Success!</strong> <?php echo Session::get('message', ''); ?>
    </div>
<?php endif; ?>

&时代;
成功

如果您像这样使用它们,您甚至可以提供成功警报、信息警报或任何您想要的警报。

我假设您使用的是引导,因此此答案将在弹出窗口中显示消息(我在Laravel 5上进行了测试)

确保此代码将添加到页脚中

<!-- Show Pop up Window if there is message called back -->
<?php
if(session('message'))
{
    echo '<script>
        document.getElementById("popup_message").click();
    </script>';
}
?>
  {!! message_pop_up_window($message) !!}