【问题标题】:Laravel 4 Form Submission and Input RetrievalLaravel 4 表单提交和输入检索
【发布时间】:2014-08-05 22:14:32
【问题描述】:

我是 Laravel 的初学者。我正在尝试通过使用控制器来操作输入来制作一个简单的登录表单。然而,每次代码只是忽略控制器功能并在我每次提交时继续调用索引。请指教。

这是我的表单的代码

{{ Form::open(array('action' => 'CoverController@authent')) }}
<div class="col-md-3 text-box pull-left">
{{ Form::email('email', '', array('placeholder'=>'Email')); }}
</div>
<div class="col-md-3 text-box pull-left">
{{ Form::password('password', array('placeholder'=>'Password')); }}
</div>
<div class="clearfix"> </div>  
<div class="con-button">
{{ Form::submit('Sign Up / Log In'); }}
</div>
{{ Form::close() }}

以下是我的路线

Route::get('/',array('as'=>'users','uses'=>'CoverController@index'));

Route::post('/','CoverController@authent');

这是我的控制器功能

class CoverController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
    public function index()
    {
        $view =  View::make('cover');
        return $view;
    }
    public function authent()
    {
        $email = Input::get('email');
        $pwd = Input::get('password');
        $view =  View::make('formoid')->with('email',$email)->with('password',$pwd);
        return $view;
    }
}

使用上面的代码,每次按下登录按钮时,都会调用 index() 函数而不是 authent(),我做错了什么?

【问题讨论】:

  • 渲染后的代码是什么样子的? (开始表单标签)
  • 如果您将路由更改为Route::post('/',[ 'as' =&gt; 'userauth', 'uses' =&gt; 'CoverController@authent']); 并将表单打开为Form::open(['route' =&gt; 'userauth']),它会改变什么吗?
  • 感谢您的回复。不,它不会改变结果。我只是解决了问题。显然,我只需要将表单操作更改为另一个链接而不是根 ('/') 即可。

标签: php forms input laravel


【解决方案1】:

试试:

{{ Form::open(array('url' => '/', 'method' => 'post')) }}

Form Doc

【讨论】:

  • 感谢您的回复。我刚刚解决了这个问题。显然,我只需要将表单操作更改为另一个链接而不是根 ('/') 即可。
  • 但是你有 CoverController@authent 的根 ('/') 路由,对吗?所以上面的代码应该可以工作。
  • 由于某种原因它不能在根上工作,即使控制器被定向到('/'),它也会被忽略。
  • 简而言之,任何 Route::post('/') 都会被忽略。所以我必须将我的表单链接到另一个目录,在这种情况下,我创建了另一个目录('/Registration')来处理表单。