Laravel表单POST重定向失败

时间:2015-06-26 17:40:34

标签: php laravel-5.1

我在使用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主页。 例如,&#34;主注册页面&#34;在这个网址:

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

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

http://localhost:8080/

只有少数指标供您尝试帮助我(我真的卡住了): 1)我没有使用VirtualHost(在网上搜索,但在正确配置apache方面总是没有运气......祝你好运,我已经获得了xampp) 2)页面&#34;你好&#34;有一个我用作测试的链接:

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

它将我正确地重定向到受欢迎的

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

3)在POST方法中,我使用dd($inputData)来查看出错的地方,结果我没有......什么都没有。不是空白页,只是localhost页面。这导致我认为控制器方法不会被调用,因为页面中没有dd(---)结果。 希望有人能提供帮助。 非常感谢

2 个答案:

答案 0 :(得分:1)

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

rankall <- function(outcome, num = 'best'){
      data<- read.csv('outcome-of-care-measures.csv', colClasses = 'character')
      if(!outcome %in% c('heart attack', 'heart failure', 'penumonia')){
         stop('invalid outcome')
    }
    states <- sort(unique(state))
    for (i in 1:length(state)){
         statedata <- data[data$State == state[i], ]
         if(outcome == 'heart attack'){
             index <- as.numeric(statedata[,11])
    }    else if(outcome == 'heart failure'){
             index <- as.numeric(statedata[,17])
    }    else if(outcome == 'pneumonia'){
             index <- as.numeric(statedata[,23])
    }
    #sort by mortality rate and hospital name
    sorteddata <- data[order(data[,index],data$Hospital.Name, na.rm = TRUE)]
    #rank by state
     staterank <- function(state){
         hospital_state <- subset(sorteddata, State == state)
    }
        #choose rows at each num value, this where I get stuck 
         if(!is.numeric(num)){
             if(num == 'best'){
                 num <- 1}
             else if(num == 'worst'){
                 num <- length(hospital_state)}
              }
         hospital_state[num]
         }

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

答案 1 :(得分:0)

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

<form action="/post/my/form" method="post">
路线中的

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