创建laravel登录名的问题 更新

我正在为uni分配作业,但是在创建必须创建的留言簿登录名时遇到了问题。

我一直在关注如何执行此操作的几个视频,当我用通用PHP编程时,我不断遇到问题,因此我一直在努力了解laravel的工作原理,我知道那会很好。我的“ authController”代码如下。这是它给我的服务器错误(对我来说毫无意义)Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException。我已经在网上搜索了此问题,但无济于事,因此请过来看看以前是否有人遇到过这个问题。

控制器         

namespace App\Http\Controllers;

use App\Authentication;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\ValidationException;

class AuthController extends Controller
{

    public function index()
    {
        return view('login.auth');
    }

    public function create()
    {

    }

    public function store(Request $request)
    {
        try {
            $this->validate($request,[
                'email' => 'required|string','password' => 'required|string'
            ]);
        } catch (ValidationException $e) {
        }

        $user_data = array(
            'email' =>  $request->get('email'),'password' =>  $request->get('password')
        );

        if(Auth::attempt($user_data)){
            return redirect('welcome');
        }
        else{
            return back()->with('error','Your details are incorrect');
        }

    }

    public function show(Authentication $authentication)
    {
        return view('welcome');
    }

    public function edit(Authentication $authentication)
    {

    }

    public function update(Request $request,Authentication $authentication)
    {

    }

    public function destroy(Authentication $authentication)
    {
//        Auth::logout();
//        return redirect('login');
    }
}

查看

@yield('heading')
@yield('login')
@yield('sign-up')
@yield('footer')

<header><h2>Already a member?<br> Sign in here</h2></header>

<div class="container">

    <form method="POST" action="{{ route('login') }}">
        @csrf
        <label for="email">Enter Email</label>
        <input id="email" type="email" class="form-control @error('error') is-invalid @enderror"
               name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        <label for="password">Enter Password</label>
        <input id="password" type="password"
               class="form-control @error('error') is-invalid @enderror" name="password" required
               autocomplete="current-password">
        <button type="submit" class="btn btn-primary">
            {{ __('Login') }}
        </button>
    </form>

</div>

如您所见,我已经开始尝试解决此问题,但是一旦单击登录按钮,错误仍然会继续发生。

我要做的就是登录我的网站,这样我就可以查看留言簿中的评论,如果我没有登录,也可以将我重定向到登录页面。

在此问题上的任何帮助将不胜感激, 本:)

已更新19年8月11日00:56。

Dallas_Mavericks 回答:创建laravel登录名的问题 更新

您需要在resources/view/login/auth.blade.php中输入HTML登录表单,以向控制器的store方法发布请求

例如

<form method="POST" action="{{ route('login') }}">
    @csrf
    <input id="email" type="email" class="form-control @error('email') is-invalid @enderror"
        name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
    <input id="password" type="password"
        class="form-control @error('password') is-invalid @enderror" name="password" required
        autocomplete="current-password">
    <button type="submit" class="btn btn-primary">
        {{ __('Login') }}
    </button>
</form>

并按如下所示在login中设置routes/web.php路由

Route::post('/login','AuthController@store')->name('login');

该错误是由于邮寄路线上的获取请求所致

更新

将您的验证码更改为

$this->validate($request,[
  'username' => 'required|string','password' => 'required|string',]);

没有称为username AFAIK的验证规则

希望这会有所帮助

,

这不是您的表单无法正常工作的原因,而是一种更好的布局方式。

resources/views/layouts/app.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_','-',app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <meta name="application-name" content="{{ config('app.name') }}"/>
    <title>{{ config('app.name') }} @hasSection('title') - @yield('title')@endif</title>
    <link href="{{ secure_asset('css/app.css') }}" rel="stylesheet">
    @stack('styles')
</head>
<body>
    <div id="app">
        @include('partials.header')
        <main class="main-content">
            @yield('content')
        </main>
        @include('partials.footer')
    </div>
    <script src="{{ secure_asset('js/app.js') }}" defer></script>
    @stack('scripts')
</body>
</html>

resources/views/auth/login.blade.php

@extends('layouts.app')

@section('content')
    <form method="POST" action="{{ route('login') }}">
        @csrf
        <input id="email" type="email" class="form-control @error('email') is-invalid @enderror"
            name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        <input id="password" type="password"
            class="form-control @error('password') is-invalid @enderror" name="password" required
            autocomplete="current-password">
        <button type="submit" class="btn btn-primary">
            {{ __('Login') }}
        </button>
    </form>
@endsection

@push('scripts')
    <script>
        // additional scripts if required.
    </script>
@endpush

来自您的控制器

...
    public function index()
    {
        return view('auth.login');
    }
...
本文链接:https://www.f2er.com/3141184.html

大家都在问