یه روش هست که می توانیم خودمان ریکوئست های های خاص بسازیم و ولیدیتورم در آنجا کنترل کنیم (مربوط به چند خط پایین - اون گلوباله و عمومی) ولی روش ساده تر مثل پایین اینکه در همان کنترلر و کلاسی که در روت برای ارسال آن فرم است تعریف کردیم ولیدیتور را اضافه کنیم:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Comment;
use Auth;
use Validator; دقت
class CommentController extends Controller
{
public function addComment(Request $data) مرتبط با نکته خط اول
{
$valiii = Validator::make($data->all(), [ از دیتا همه رو بگیر بریز تو ظرف ولی
'title' => 'required|max:5',
'body' => 'required|min:4',
تو سایت لاراول کل از این نکات هست
]);
if ($valiii->fails()) {
return redirect(
"article/".$data->article_id."#biainja")
اگه ارور داد صفحه اسکرول بخوره به متن ارور یا همون آلرت->withErrors($valiii)
->withInput();
}
if(Auth::check())
{
$data['user_id'] = Auth::user()->id;
Comment::create($data->except('_token'));
return redirect()->back()->with("success","کامنت با موفقیت ثبت شد");
}
else
{
return redirect()->back()->with("success","برای کامنت نوشتن باید وارد شودید");
}
}
}
----------------------------------------------------------------------
حال در ویو ارور ها را چاپ می کنیم:
@if ($errors->any())
<div class="alert alert-danger" id="biainja">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
همه رو داخل ارورز قرار بده و یکی یکی نشانشان بده
@endforeach
</ul>
</div>
@endif
اگر بخواهیم بعد از ارور زحمات تایپ کننده هدر نرود و متن پاک نشود از old استفاده می کنیم:
<input type="text" name="title" class="form-control" id="title" value="{{ old('title') }}">
<textarea cols="" rows="5" type="text" name="body" class="form-control" id="body">{{ old('body') }}</textarea>