【发布时间】:2021-02-11 17:53:12
【问题描述】:
我正在尝试在控制器中添加验证,但它不适用于 auth:check。这是 Laravel 5.7 版。
这是验证有问题的函数库。
public function store(Request $request)
{
$request->validate([
'first_name' => ['required'|'min:2'|'max:50']
]);
if(Auth::check()){
$player = Player::create([
'first_name' => $request->input('fist_name'),
'last_name' => $request->input('last_name'),
]);
if($player){
return redirect()->route('players.show', ['player'=> $player->id])
->with('success' , 'foo');
}
}
return back()->withInput()->with('errors', 'Foo Error');
}
[![在此处输入图片描述][2]][2]
更新 验证现在有效,但它产生了一个新问题。当我保存新播放器时,它会显示此错误。
我认为问题出在这段代码
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ $player->first_name }} {{ $player->last_name }} <span class="float-right"><a class="" href="{{ route('players.edit', $player->id)}}">
{{ __('Spieler bearbeiten') }}
</a></span></div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<ul>
<li>Vorname: {{ $player->first_name }}</li>
<li>Nachname: {{ $player->last_name }}</li>
<li>Land: {{ $player->country }}</li>
<li>Bild: {{ $player->image }}</li>
<li>Grösse: {{ $player->size }}</li>
<li>Gewicht: {{ $player->weight }}</li>
<li>Alter: {{ $player->date_of_birth }}</li>
</ul>
<br>
<br>
<a href="{{ route('tournaments.show', $player->tournament_id) }}">Zurück</a>
</div>
</div>
</div>
</div>
</div>
@endsection
【问题讨论】:
-
您的验证不应该是
[ 'first_name' => 'required|min:2|max:50' ]或['required', 'min:2', 'max:50'] -
既然这个路由只能在你认证的时候使用,那为什么用户没有认证你还接受请求呢?请阅读文档,您可以protect the route 并摆脱大部分代码。
-
@Remul 谢谢!我现在阅读了文档。
-
@Remul 我已经修改了我的代码,但我不知道我到底要适应什么。
-
@Remul 我已经修改了代码,但验证仍然不起作用。
标签: laravel laravel-5 laravel-5.7 laravel-validation