Laravel Form POST重定向失败


Laravel Form POST redirect failure

我对Laravel 5.1有一段非常沮丧(超级新手)的经历。当然,我一定遗漏了一些东西,但不幸的是,我在Laravel文档上找不到任何东西。

问题是这样的(我认为这甚至相对简单):虽然所有的GET路由都在工作,但POST中的路由正在将我"重新路由"到错误的地方。例如,假设控制器是这样的:

namespace App'Http'Controllers;
use Illuminate'Routing'Controller as BaseController;
use View;
class PagesController extends BaseController {

  public function hello(){
    return view('hello');
  }


 public function register(){
    //Registration rules
    $inputData=array(
            'name' => 'Input::get('name'),
             'email' =>'Input::get('email'),
             'password' => bcrypt('Input::get('password')),
        );  

        createUser($inputData);
    return view('stat');
  }     


 private function createUser($inputData){
    return User::create($inputData);
  }
}

并给出路线:

Route::get('/','PagesController@hello');

这一个按照指示的方法将我正确地重定向到控制器中指定的视图。

POST操作无法成功执行,因为

Route::post('/','PagesController@register');

形式具有:

<form action="/" method="post">
        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
        <label for="name">User Name</label><br/>
        <input type="text" name="name" id="name"/><br/>
        <label for="name">E-mail</label><br/>
        <input type="text" name="email" id="email"/><br/>
        <label for="password">password</label><br/>
        <input type="password" name="password" id="password"/><br/>
        <input type="submit" value="auth!"/>
    </form>

结果将我重定向到examplep主页。例如,"主注册页面"位于以下网址:

http://localhost:8080/laravel/project1/public/

(好了)当我点击提交按钮时,我会被发送到

http://localhost:8080/

只有几个指标可以让你试着帮助我(我真的很困):1) 我没有使用VirtualHost(在网上搜索过,但在正确配置apache方面总是运气不佳…祝你好运,我有examplep)2) 页面"你好"有一个我用作测试的链接:

<a href="stat">Link</a>

它将我正确地重定向到备受追捧的

http://localhost:8080/laravel/project1/public/stat

3) 在POST方法中,我使用了dd($inputData)来查看出了什么问题,结果我得到了。。。没有什么不是空白页,只是始终是localhost页。这让我想到,不知何故,控制器方法没有被调用,因为页面中没有dd(---)结果。希望有人能帮忙。非常感谢

您的域是http://localhost:8080,所以当您将action设置为"/"时,它将转到root。这不是一个好的做法,但你的解决方案是改变:

<form action="/laravel/project1/public/" method="post">

我将在apache中为该项目创建一个虚拟主机,因此文档根目录将为/lavel/project1/public/。

您将表单发布到根/,这就是您被路由到examplep页面的原因。要解决此问题,请将表单操作更改为此

<form action="/post/my/form" method="post">

在您的路线

Route::post('/post/my/form','PagesController@register');