当前位置: 首页 > 知识库问答 >
问题:

未找到Laravel和页面中的路由问题

幸鸿轩
2023-03-14

我在弹出窗口有联系表,但当我点击发送按钮时,我没有找到页面,而不是将我重定向到主页。

这是我的路线

Route::post('/contact_us','HomeController@contact_us')->name('contact_us');

HomeC中的功能ontroller.php

public function contact_us(Request $request)
{ 
    $validator=Validator::make($request->all(), [
        'name' => 'required',
        'phone' => 'required',
        'email' => 'required|email'
    ]);

    if($validator->fails())
    {

      Session::flash('error', "join_us");
      return back()->withInput()->withErrors($validator, 'contact');
    }
    $data = array(
        'name' => $request->name,
        'email'  => $request->email,
        'phone'  => $request->phone,
        'created_at' => date('Y-m-d h:i:s'),
        ); 
    $email=$request->email;

     DB::table('application_from')->insert($data); 

    return Redirect::to('/')->with('message', 'Application added successfuly');
}    

表单打开和关闭标签是

{{Form::open(array('route'=>'contact_us','method'=>'post'))}}

..... form inputs

{{Form::close()}}

当我点击提交我有

Not Found

The requested URL /contact_us was not found on this server.

为什么要在应该重新加载主页时尝试加载此URL?

用表格更新

<div class="modal-body">
    {{Form::open(array('route'=>'contact_us','method'=>'post'))}}
         <div class="form-group {{ $errors->contact->has('name') ? 'has-error' : '' }}">
              @if ($errors->contact->has('name'))
                  <span class="small text-danger ">
                      <b>{{ $errors->contact->first('name') }}</b>
                  </span>
              @endif
              <input type="text" name="name" class="form-control" placeholder="Name" >
         </div>
         <div class="form-group {{ $errors->contact->has('email') ? 'has-error' : '' }}">
              @if ($errors->contact->has('email'))
                  <span class="small text-danger ">
                     <b>{{ $errors->contact->first('email') }}</b>
                  </span>
              @endif
              <input type="text" name="email" class="form-control" placeholder="Email" >
         </div>
         <div class="form-group {{ $errors->contact->has('phone') ? 'has-error' : '' }}">
              @if ($errors->contact->has('phone'))
                   <span class="small text-danger ">
                        <b>{{ $errors->contact->first('phone') }}</b>
                   </span>
              @endif
              <input type="text" name="phone" class="form-control" placeholder="Phone" >
         </div>
         <div class="form-group text-center">
              <button type="submit" class="btn btn-custom btn-sm btn-block">Submit</button>
         </div> 
         {{Form::close()}}
 </div>

更新2:发送邮件功能

Mail::send('contact_us_email', $data, function($message) use ($email){
            $message->to($email)->subject('Site')->cc('info@example.com');
            $message->from('info@example.com');
});

共有3个答案

梁建德
2023-03-14

请分享表格的完整代码

我已经检查了你的函数表单路由没有bug

我认为表单中的数据正盯着数据库,但是在存储后的重定向抛出错误

我不确定,但可能是

所以试着改变

 return Redirect::to('/')->with('message', 'Application added successfuly');

return redirect()->back()->with('message','Application added successfuly');

而且来自

{{Form::open(array('route'=>'contact_us','method'=>'post'))}}

  {!! Form::open(['route' => ['contact_us']]) !!}
  @method('POST')
东门仲卿
2023-03-14

您似乎缺少表单中的csrf令牌。按以下形式添加csrf字段:

<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />

或者

{!! Form::token() !!}

希望这能解决你的问题。

法兴德
2023-03-14

回答您的电子邮件问题

尝试在您的应用程序中添加以下内容。环境文件

# For Localhost Email
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls

# For Hosting Email
MAIL_DRIVER=sendmail
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

这些凭据适用于基于gmail的电子邮件,请不要忘记执行以下步骤:

  1. 转到您的Google帐户。
  2. 在左侧导航面板上,单击安全。
  3. 在页面底部,在不太安全的应用访问面板中,单击打开访问。
 类似资料:
  • 我在routes.php中定义了一个简单的路由,位于任何路由之上: 当通过http访问时,它可以工作,但它提供: 当我试图通过https访问时。 我在网上搜索了很多,但没有找到任何解决方案。 我的主页正在加载超文本传输协议和https,但其他路由不工作。我需要一些额外的配置吗? 编辑: .htaccess: 请引导我。 塔克斯。

  • 我正在学习拉威尔,我正在尝试使用拉威尔护照。当我尝试创建一个新用户时,我发现错误404 not found。 注册控制器。php 应用程序/Http/控制器/认证 我的api控制器也有这个路径 应用程序/Http/控制器/Api api中的路由。php 注册控制器 失眠测试注册 我知道我没有传递任何注册值。 我测试过127.0.0.1:8000/create 我已经测试了127.0.0.1:800

  • 问题内容: 我做了一些Angular路线,如下面的代码所示。 在我将基本href设置为“ /”后,它可以正常工作,但它接受了带有“ / portfolio”的href的锚点,但是当我转到“ http://url.com/portfiolo ”或尝试重新加载页面时当我在投资组合路线上时,它将给我服务器错误。我可以为此做些什么吗? 提前致谢。 问题答案: 我自己解决了..您始终需要在项目的根目录中创建

  • 我有一个Django Vue。我正在尝试连接到django频道的js聊天应用程序。 要访问任何聊天室,您只需访问: http://localhost:8080/rooms/"id"/ 我的javascript连接如下所示: 我的consumers.py: 我的routing.py: 我的项目routing.py: 问题是,我无法连接到websocket,我的django服务器说: [失败实例:回溯

  • 多页面的配置如下: 在充值中心配置的路由守卫是想在访问 http://localhost:9000/recharge-center/xxx不存在的页面时重定向到充值中心页面,即 http://localhost:9000/recharge-center,但实际上却会重定向到主页,在控制台也可以看到没有进入充值中心的路由守卫钩子函数,而是进入了主页的钩子函数。 主页的路由: 充值中心的路由: 望解答

  • 由于客户端问题,我必须把laravel 4应用程序共享托管服务。但我在[laravelio]遵循了这个过程,其中包括。 这应该是可行的,但是当我访问url时,我得到了这样的结果:在这个服务器上找不到请求的url/登录名。请问有什么问题,因为我不明白。可能是关于配置的。htacces文件。 任何帮助都将得到赞赏。感谢网站是在:benin1897.com 我刚刚发现public_html中没有. ht