@if(Auth::check())
به جای check می توان از متد user نیز استفاده کرد که این کار را می کند: یوزری اگر لاگین کرده بود اطلاعاتش را برگردان، اگر نکرده باشه نمیشه!
<form ...>
</form>
@else
<div class="alert alert-info">
<p>
برای کامنت باید وارد شوید
</p>
<a href="{{ url('/login') }}" class="btn btn-link">
ورود
</a>
</div>
@endif
نکته: از guest و endguest نیز میتوان استفاده کرد.
برای امنیت بیشتر ( مثلا با نرم افزار پست من خودش یه فرمی نفرسته ) تو کنترلر هم کنترلش کنیم: و این که بعد از درج کامنت یک پیام موفقیت آمیز به آن نمایش داده شود:
class CommentController extends Controller{public function addComment(Request $data){if(Auth::check()){$data['user_id'] = Auth::user()->id;Comment::create($data->except('_token'));return redirect()->back()->with("success","کامنت با موفقیت ثبت شد");وید مانند سشن یک پیام به صورت فلش(یک بار مصرف)ارسال میکند (به سشن تزریق می کند) (می توان از دستورات سشن نیز استفاده کرد و در این صورت باید یوزش کرد)}else{return redirect()->back()->with("error","برای کامنت نوشتن باید وارد شودید");}}}
حال در ویو (سینگل آرتیکل آن را چاپ می کنیم) با سوییت آلرت: بالای ...@if (Auth::check
اول از سایتش لینکشو تو بخش هد قرار می دهیم:
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
سپس داخل تگ اسکریپت:
@if (Session::has('success'))هس یعنی آیا داری همچین کلیدی<script>Swal.fire('موفقیت آمیز','{{ Session::get('success') }}',چون از گت استفاده کردیم یک بار کال میشه مصرف میکنه و دیسترویش میکنه چون پیام رو تو وید گزاشتیم در کنترلر (وید انگار سشن ایجاد میکنه به صورت فلش) ولی هس مصرف نمیکنه'success')</script>@endif