Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException on laravel 5.6
Posted
技术标签:
【中文标题】Symfony \\ Component \\ HttpKernel \\ Exception \\ MethodNotAllowedHttpException on laravel 5.6【英文标题】:Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException on laravel 5.6Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException on laravel 5.6 【发布时间】:2019-01-06 07:01:12 【问题描述】:我尝试在 Laravel 5.6 中创建一个登录页面,它显示以下错误
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
我已使用 POST 方法进行路由,但服务器显示相同的错误 添加了相同的屏幕截图。 enter image description here
查看代码
<body>
<div class="data-head">
Form::open(array('url' => 'login'))
<p class="col-md-12">
<h5 class="login-head">Login</h5>
</p>
<p>
$email_err
</p>
<p class="col-md-10 col-md-move">
Form::label('email', 'E-Mail Address', array('class' => 'awesome'))
Form::text('email','', array('placeholder' => 'yourname@example.com', 'class' => 'form-control'))
</p>
<p class="col-md-10 col-md-move">
Form::label('password', 'Password', array('class' => 'awesome'))
Form::password('password', array('placeholder' => 'Password', 'class' => 'form-control'))
</p>
<p class="col-md-10 col-md-move">
<a href="forget" class="link-forget">Forget Password ? </a>
Form::submit('Login', array('class' => 'btn btn-info'))
</p>
</div>
</body>
路线文件:
Route::post('/', function ()
return view('welcome');
);
Route::post('register',function()
return view('login');
);
Route::post('login', 'LoginController@loginProcess');
The controller code
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Hash;
class LoginController extends Controller
public function loginProcess(Request $request)
$email_err="";
$password_err="";
$pass="";
$email = $request->input('email');
$password = $request->input('password');
$pass=DB::table('login')->where('email', $email)->value('password');
if($pass=="")
$email_err="Non Registred User";
return view('login',['email_error' => $email_err]);
if(Hash::check($password,$pass))
echo "Login Successs";
else
$password_err="Invalid Password";
提前致谢
【问题讨论】:
您的表单中没有 CSRF 令牌。 这是强制性的吗? 是的,这是强制性的,在您的表单中使用csrf_token()
它在元标记中使用
@RaymondThomas 元标记无论如何都与表单的功能无关......旁注,可能想要关闭表单
【参考方案1】:
您需要像下面这样更改视图代码,
<body>
<div class="data-head">
Form::open(array('url' => 'login','method' => 'post'))
<p class="col-md-12">
<h5 class="login-head">Login</h5>
</p>
<p>
$email_err
</p>
<p class="col-md-10 col-md-move">
Form::label('email', 'E-Mail Address', array('class' => 'awesome'))
Form::text('email','', array('placeholder' => 'yourname@example.com', 'class' => 'form-control'))
</p>
<p class="col-md-10 col-md-move">
Form::label('password', 'Password', array('class' => 'awesome'))
Form::password('password', array('placeholder' => 'Password', 'class' => 'form-control'))
</p>
<p class="col-md-10 col-md-move">
<a href="forget" class="link-forget">Forget Password ? </a>
Form::submit('Login', array('class' => 'btn btn-info'))
</p>
</div>
</body>
你只需要在Form::open()
门面中提供方法类型,比如'method'=>'post'
,默认是GET
【讨论】:
不,它默认为post
"默认情况下,将假定一个 POST 方法;但是,您可以随意指定其他方法:"
这是从 Laravel 5.6 的文档中理解的
这个包(html Form Builder)不是来自 Laravel .. 它是一个 3rd 方包,所以它不在那些文档中......我想你的意思是一个实际的 html 表单以及浏览器如何处理没有定义方法时的html?
你的意思是 Htmlcollective ?
laravelcollective 维护 html 和表单包以上是关于Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException on laravel 5.6的主要内容,如果未能解决你的问题,请参考以下文章
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException。原因是啥?
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
Laravel“Symfony\Component\HttpKernel\Exception\HttpException”错误
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException,删除按钮
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException on laravel 5.6