0

我对 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>

结果将我重定向到 xampp 主页。例如,“主注册页面”位于此 url:

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

(GET OK) 当我点击提交按钮时,我被发送到

http://localhost:8080/

还有几个指标供您尝试帮助我(我真的卡住了):1)我没有使用VirtualHost(在网上搜索,但在正确配置apache方面总是没有运气......祝我好运我'我得到了xampp)2)页面“你好”有一个我用作测试的链接:

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

它正确地将我重定向到抢手

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

3)在 POST 方法中,我使用 add($inputData)查看出了什么问题,结果我……什么都没有。不是空白页,只是永远的localhost页面。这使我认为不知何故没有调用控制器方法,因为dd(---)页面中没有结果。希望有人可以提供帮助。非常感谢

4

2 回答 2

1

您的域是http://localhost:8080,因此当您将操作设置为 '/' 时,它会转到 root。这不是一个好习惯,但你的解决方案是改变:

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

我会在 apache 中为项目创建一个虚拟主机,所以文档根目录是 /laravel/project1/public/ 。

于 2015-06-26T17:45:39.507 回答
0

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

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

在您的路线中

Route::post('/post/my/form','PagesController@register');
于 2015-08-21T00:47:51.723 回答