2015-06-26 34 views
0

我對Laravel 5.1有着非常沮喪的(超級新手)體驗。 確定必須有一些我錯過的東西,但不幸的是我在Laravel文檔上找不到任何東西。Laravel表單POST重定向失敗

問題是這樣的(我相信甚至相對簡單):雖然所有的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('/','[email protected]'); 

這一個正確地重定向我在控制器所指定的視圖,在所示的方法。不能順利進行

POST操作,因爲

Route::post('/','[email protected]'); 

與具有形式:

<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主頁。 例如,「主註冊頁面」就是在這個網址:

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方法追捧-,我用了一個dd($inputData)看看發生了什麼事情錯了,結果我.. 。沒有。不是空白頁面,只是總是localhost頁面。這導致我認爲控制器方法不被調用,因爲頁面中沒有dd(---)結果。 希望有人能幫助。 非常感謝

回答

1

您的域名是http://localhost:8080,所以當你設定行動「/」,它去根。它`不是好的做法,但你的解決辦法是改變:

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

I`d創建在apache的項目中的虛擬主機,所以文檔根目錄爲/ laravel/PROJECT1 /公/。

+0

喜bignick改變這種

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

,謝謝你的建議。不幸的是,我也嘗試了這種解決方案,但是我沒有重定向到/ stat,而是重新加載了頁面「laravel/project1/public /」(即使控制器中的方法有其他操作)。我會嘗試在Apache中配置一個虛擬主機,看看有沒有什麼變化 –

0

你正在發佈你的表格到根/這就是爲什麼你被路由到xampp頁面。爲了解決這個問題,你的表格行動你的路由

Route::post('/post/my/form','[email protected]'); 
+0

你只需要將xampp中的文檔根目錄設置爲你的laravel項目的公共文件夾,因爲這是提供給網絡的應用程序的其餘部分是私人的然後你的代碼就會像你一樣工作。 – futureweb