کامپوننت ها و اسلات ها در لاراول تقریبا شبیه به section ها و layout ها هستند . در مستندات فریم ورک گفته شده که این مفاهیم راحت تر قابل فهم هست.
برای مثال : برای هشدار به کاربر یا همان alert ها , به جای اینکه هر دفعه کد تکراری بنویسیم
آن را به صورت یک component در ویو ایجاد می کنیم و در جای مد نظر آن را صدا میزنیم
محل تعریف این کامپوننت ها در فولدر views قرار می گیرد (resources->views)
برای مثال من در این فولدر یکفایل php با نام alert.blade.php ایجاد می کنم:
<!-- /resources/views/alert.blade.php --> <div class="alert alert-{{ $status ?? 'success' }}"> {{ $slot }} </div>
در کد بالا ما دو متغییر ایجاد کردیم
یک: status که در صورتی که ما مقدار این متغییر را زمان استفاده مشخص نکنیم به صورت پیش فرض متن “success” قرار می گیرد
دو: slot که در واقع متغییر پیشفرض component می باشد .
حال این کامپوننت را در یکی از ویوها (article/index) صدا میزنیم
<!-- /resources/views/article/index.blade.php --> @component('alert',[ 'status'=>'danger' ]) <strong>توجه!</strong> خطایی پیش آمده است! @endcomponent
در کد بالا به وسیله ی دستور component و نام alert ما کامپوننت را صدا زدیم
با status مقدار متغییر را مشخص کردیم
و محتوایی که بین component و endcomponent قرار دارد مقدار slot ما می باشد
توجه داشته باشید که مانند status نمیتوانید slot را صدا بزنید . مگر اینکه از متغییر دیگری استفاده کرده باشید.
مثال
<!-- /resources/views/alert.blade.php --> <div class="alert alert-{{ $status ?? 'success' }}"> {{ $slot }} <br/> {{ $footer }} </div>
@component('alert',[ 'status'=>'danger', 'footer'=>'goyii.ir - golaravel.ir' ]) <strong>توجه!</strong> خطایی پیش آمده است! @endcomponent
