首页 > 解决方案 > Laravel 表单不起作用:未调用控制器

问题描述

我已经被这个问题困扰了几个小时,所以希望你们中的一些人能提供帮助。提前致谢。

问题很简单:当我单击表单的提交按钮时,什么也没有发生。就像,实际上什么都没有。没有错误,什么都没有。在开始开发表单之前,我通过执行创建了 Message 模型

php artisan make:model Message --resource

因此,我的方法创建、存储等已经完成并准备就绪(感谢工匠!)。在我的路由 web.php 路由文件中,我有:

Route::resource('Message','MessageController');

这应该会自动链接所有方法,对吧?

无论如何,我的表格是:

{!!  Form::open(['action' => 'MessageController@store', 'method' => 'POST']) !!}
                                    <ul class="row">
                                        <li class="col-sm-6">
                                            <label>{{Form::label('name','Name')}}</label>
                                                {{Form::text('name', '', ['class' => 'form-control'])}}
                                        </li>
                                        <li class="col-sm-6">
                                            <label>{{Form::label('email','Email')}}</label>
                                                {{Form::text('email', '', ['class' => 'form-control', 'placeholder' => 'Your email'])}}
                                        </li>
                                        <li class="col-sm-12">
                                            <label>{{Form::label('message','Message')}}</label>
                                                {{Form::textarea('message','', ['class' => 'form-control'])}}
                                        </li>
                                        {{Form::submit('Submit', ['class' => 'btn-round'])}}

                                    </ul>
                                    {!! Form::close() !!}

我的 MessageController@store 看起来像这样:

 public function store(Request $request)
    {
        $this -> validate($request, [
            'name' => 'required',
            'email' => 'required',
            'message' => 'required'
            ]
            );

        $message = new Message();
        $message -> name= $request -> input('name');
        $message -> email= $request -> input('email');
        $message -> text= $request ->input('text');
        $message -> user_id = Auth::user()->id;

        $message->save();

        return redirect('/');
    }

控制器似乎不起作用,因为即使我切断了验证,也没有任何反应。我不知道我做错了什么!

标签: laravelforms

解决方案


你必须使用路线。

在 HTML 中:

<form method="post" action="{{url('login')}}" accept-charset="UTF-8">

在路由/web.php 中:

Route::post('login','WelcomeController@log_in');

推荐阅读