我在使用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(---)
结果。
希望有人能提供帮助。
非常感谢
答案 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');