@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